Re-BLAST 2023
Due to the significant changes to GenBank we are re-BLASTing results.
To speed things up, I am curating custom BLAST databases using sequences
downloaded from GenBank’s Nucleotide database using Entrez Queries to
eliminate sequences that are extremely unlikely to be present in our
samples that make up a large portion of the Nucleotide database. BLAST
is being run locally using CLC Genomics Workbench. I am BLASTing by
taxon categories (e.g., viruses, fungi, parasites) as we are limited by
computational availability. For example, eliminating the top few viruses
(unlikely to be found in mosquitoes) in the nucleotide database reduces
the number of sequences by 90%.
Viruses
Entrez Query:
Viruses [ORGN] NOT Coronavirus [ORGN] NOT Human immunodeficiency
virus 1 [ORGN] NOT Influenza A virus [ORGN] NOT Hepacivirus C [ORGN] NOT
Hepatitis B virus [ORGN] NOT Influenza B virus [ORGN] NOT Rotavirus A
[ORGN] NOT Norwalk virus [ORGN] NOT Simian immunodeficiency virus
[ORGN]
Re-BLAST 2023 Steps
- Concatenate all read mapping data and contigs:
01 - Mappings & Contigs.R
- Re-BLAST all contig sequences against local NCBI virus blast
(curated via above Entrez Query) using CLC
- Read local BLAST results and filter results:
02 - Read Nt Local BLAST.R
- BLAST all contig sequences passing filters at NCBI against all
organisms to eliminate false positives using CLC
- Read BLAST at NCBI results and filter out non-virus sequences:
03 - BLAST at NCBI.R
- tBLASTx on contig sequences passing filters from step using local
database on CLC to determine aa identites
- Read tBLASTx results and filter:
04 - tBLASTx.R
Non-Virus Sequences
Non-virus sequences (e.g., Fungi, parasites, bacteria, plants,
vertebrates) were considerably lower in overall number as well as
quality. Furthermore, for these reasons, it was difficult to discern
species from the recovered sequences. Some of the reasons for this is
that compared to viruses where often we recovered the near complete
genome, for fungi, parasites, bacteria, plants and vertebrates we
recovered mostly rRNA, mitochondrial sequences, or in the case of
plants, chloroplast sequences. Therefore, we decided to conduct analyses
for non-virus sequences recovered at a higher level (e.g., Family,
Genus) rather than species. This still gives us a good idea about what
organisms are harboured by mosquitoes.
Methods
Host and Quality Filtering
Chan Zuckerberg ID Metagenomic Pipeline v6.8 (Chan Zuckerberg Biohub;
CZID), an open-sourced cloud-based bioinformatics platform (https://czid.org/) was used for
quality control and host filtration of reads as well as de novo assembly
and taxonomic binning as described by Batson et al., (2021) and Kalantar
et al., (2020). The CZID pipeline employs STAR and Bowtie2 to perform
host filtration (human and mosquito), Trimmomatic for adapter trimming,
Price Seq for removal of low-quality reads, LZW for the removal of low
complexity reads and CZIDdedup for duplicate read identification.
De Novo Assembly
The host and quality filtered reads were allowed to continue through
the CZID pipeline, which involves de novo assembly with SPADES using
default settings and only the assembly module. After assembly, reads are
mapped back to contigs with Bowtie2. The host and quality filtered reads
from CZID (the Bowtie2 output) were downloaded and assembled with the
CLC Genomics Workbench version 20 assembler with a minimum contig length
of 250 nt, mismatch cost of 2, insertion cost of 3, deletion cost of 3,
length fraction of 0.7 and a similarity fraction of 0.95. Contigs were
subject to BLASTn and tBLASTx searches on a custom NCBI viruses database
using the above Entrez Query and the NCBI nt database. The BLAST results
were very similar between CZID and CLC, thus we opted to use CLC
Genomics Workbench version 20 for subsequent analyses.
BLAST
Assembled contigs were subject to BLASTn searches on the NCBI
non-redundant nucleotide database, and contigs were assigned to taxa
based on BLAST results. Positive contigs from BLASTn were subject to
tBLASTx to identify amino acid identities. We were looking for
non-mosquito sequences of viral, bacterial, parasitic, fungal and plant
origin and discarded sequences that were of mosquito origin.
To begin, BLASTn search results were filtered by E-value (≤1x
10-100) and contig length (≥250). Contigs with a match length
of ≥250 nt, ≥90% for both nt and aa sequence similarity were classified
as hits. Coverage depth was analyzed on a per-sequence basis: for
viruses, we used a minimum threshold of 10X coverage depth, and we were
less strict for protozoan, fungal, bacterial, plant and chordate
coverage. For virus hits, contigs meeting these criteria were subject to
tBLASTx searches to identify amino acid identities.
Contigs of viral origin with a percent nt identity <85% were
flagged as potentially novel viruses. While the ICTV sets specific
standards for different viral taxa for percent identity to claim a novel
virus, many of the viruses we recovered are unclassified beyond the
order or family classification, which can make selecting an identity
threshold difficult. Therefore, we selected ≤85% as the cut-off because
Kalantar et al., (2020) suggests that <90% nt identity is a good
general threshold and we opted to be more conservative in our
assignments of novel viruses.
Libraries
require(pacman)
pacman::p_load(tidyverse, janitor, here, DT, gt, phylotools, assertr, readxl, patchwork, reshape2, ggtext, openxlsx, grid, tiff)
Load Data
virus_master_2023 <- read_csv(here("Data/tblastx_master.csv"))
Sequencing Summary
# Read count & contigs
virus_master_2023 %>%
mutate(reads_log10 = log10(total_read_count)) %>%
drop_na(genome) %>%
ggplot(aes(x = contig_length, y = reads_log10)) +
geom_point(aes(colour = genome)) +
scale_colour_viridis_d("Genome") +
theme_bw() +
labs(x = "Contig Length (nt)",
y = "Reads (Log 10)")

# Read count & contigs (mosquito species)
virus_master_2023 %>%
mutate(reads_log10 = log10(total_read_count)) %>%
drop_na(genome) %>%
ggplot(aes(x = contig_length, y = reads_log10)) +
geom_point(aes(colour = mosquito_species)) +
scale_colour_viridis_d("Species") +
theme_bw() +
labs(x = "Contig Length (nt)",
y = "Reads (Log 10)")

# Contig length and coverage
virus_master_2023 %>%
mutate(coverage_log10 = log10(coverage)) %>%
ggplot(aes(x = contig_length, y = coverage_log10)) +
geom_point(aes(colour = genome)) +
scale_colour_viridis_d() +
theme_bw() +
labs(x = "Contig Length (nt)",
y = "Coverage (Log 10)")

# Coverage reads
virus_master_2023 %>%
mutate(coverage_log10 = log10(coverage)) %>%
mutate(reads_log10 = log10(total_read_count)) %>%
ggplot(aes(x = coverage_log10, y = reads_log10)) +
geom_point(aes(colour = genome)) +
scale_colour_viridis_d("Genome") +
theme_bw() +
labs(x = "Coverage Depth (Log 10)",
y = "Reads (Log 10)")

# Contig Length and % ID
virus_master_2023 %>%
ggplot(aes(x = contig_length, y = greatest_identity_percent)) +
geom_point(aes(colour = genome)) +
scale_colour_viridis_d() +
theme_bw() +
labs(x = "Contig Length (nt)",
y = "Percent aa Identity")

BLAST Summary
library_summary <- virus_master_2023 %>%
group_by(mosquito_species, sample_number) %>%
summarise(n = n_distinct(mosquito_species)) %>%
group_by(mosquito_species) %>%
summarise(n = n()) %>%
adorn_totals()
years <- virus_master_2023 %>%
group_by(collection_year, virus_name) %>%
summarise(count = n_distinct(virus_name, collection_year)) %>%
pivot_wider(names_from = collection_year, values_from = count, values_fill = 0)
virus_lineage <- virus_master_2023 %>%
group_by(virus_name, viral_family, genome) %>%
summarise(n = n_distinct(virus_name, viral_family, genome)) %>%
select(-"n")
virus_master_2023 %>%
group_by(virus_name) %>%
summarise(n_contigs = n(),
mean_cov = mean(coverage),
min_cov = min(coverage),
max_cov = max(coverage),
mean_pid = mean(greatest_identity_percent),
med_pid = median(greatest_identity_percent),
min_pid = min(greatest_identity_percent),
max_pid = max(greatest_identity_percent),
total_reads = sum(total_read_count),
longest_contig = max(contig_length)) %>%
left_join(virus_lineage, by = "virus_name") %>%
group_by(genome, viral_family) %>%
arrange(genome, viral_family) %>%
relocate(total_reads, .after = "n_contigs") %>%
relocate(longest_contig, .after = "n_contigs") %>%
mutate(across(.cols = "virus_name",
~case_when(grepl("Manitoba", virus_name) & !grepl("Manitoba virus", virus_name) ~
paste0(., "*"),
TRUE ~ .))) %>%
gt() %>%
fmt_number(columns = mean_cov:max_pid,
decimals = 2) %>%
fmt_number(columns = total_reads,
sep_mark = ",",
decimals = 0) %>%
tab_spanner(label = "Coverage Depth", columns = c(mean_cov, min_cov, max_cov)) %>%
tab_spanner(label = "aa Percent Identity", columns = c(mean_pid, min_pid, max_pid, med_pid)) %>%
cols_label(
n_contigs = "Contigs",
longest_contig = "Longest Contig (nt)",
total_reads = "Reads",
mean_cov = "Mean", min_cov = "Min", max_cov = "Max",
mean_pid = "Mean", min_pid = "Min", max_pid = "Max", med_pid = "Median",
virus_name = "Virus") %>%
tab_style(
style = list(cell_fill(color = "grey"),
cell_text(weight = "bold")),
locations = cells_row_groups(groups = everything())
) %>%
tab_style(
style = cell_borders(
sides = "left",
weight = px(2),
color = "grey"),
locations = cells_body(
columns = c(mean_cov, mean_pid, "n_contigs")
)
) %>%
data_color(
columns = mean_pid:max_pid,
palette = "viridis"
) %>%
tab_footnote("* Putatively novel virus.")
| Virus |
Contigs |
Longest Contig (nt) |
Reads |
Coverage Depth
|
aa Percent Identity
|
| Mean |
Min |
Max |
Mean |
Min |
Max |
Median |
| +ssRNA - Dicistroviridae |
| Black queen cell virus |
2 |
6035 |
1,613 |
17.00 |
11.15 |
22.85 |
100.00 |
100.00 |
100.00 |
100.00 |
| Manitoba dicistro-like virus 1* |
1 |
7146 |
10,688 |
149.27 |
149.27 |
149.27 |
82.61 |
82.61 |
82.61 |
82.61 |
| Soybean thrips dicistrovirus |
11 |
9121 |
11,192 |
17.32 |
10.11 |
29.01 |
100.00 |
100.00 |
100.00 |
100.00 |
| +ssRNA - Flaviviridae |
| Inari jingmenvirus |
1 |
1267 |
139 |
11.02 |
11.02 |
11.02 |
100.00 |
100.00 |
100.00 |
100.00 |
| Placeda virus |
169 |
11737 |
106,682 |
90.37 |
10.02 |
1,114.82 |
97.87 |
86.24 |
100.00 |
98.55 |
| +ssRNA - Iflaviridae |
| Cafluga virus |
2 |
3426 |
976 |
20.82 |
19.41 |
22.24 |
99.77 |
99.55 |
100.00 |
99.77 |
| Culex Iflavi-like virus 4 |
23 |
9811 |
13,815 |
22.81 |
10.65 |
58.90 |
99.81 |
96.20 |
100.00 |
100.00 |
| Culex iflavilike virus 3 |
183 |
1824 |
266,451 |
284.65 |
18.65 |
1,269.06 |
99.49 |
94.19 |
100.00 |
100.00 |
| Hanko iflavirus 1 |
30 |
9246 |
2,938,402 |
3,394.01 |
10.99 |
19,795.35 |
97.49 |
93.45 |
100.00 |
97.30 |
| Hanko iflavirus 2 |
16 |
9206 |
19,456 |
93.72 |
18.50 |
208.48 |
97.05 |
89.58 |
100.00 |
100.00 |
| Hubei arthropod virus 1 |
1 |
2967 |
352 |
11.95 |
11.95 |
11.95 |
100.00 |
100.00 |
100.00 |
100.00 |
| Manitoba iflavirus 1* |
13 |
2435 |
10,000 |
78.09 |
16.30 |
242.52 |
78.42 |
67.08 |
83.54 |
79.47 |
| Manitoba picorna-like virus 1* |
20 |
2114 |
15,071 |
70.96 |
18.52 |
207.10 |
81.99 |
73.93 |
84.96 |
83.10 |
| Pedersore iflavirus |
25 |
9899 |
39,865 |
28.41 |
10.35 |
266.71 |
93.47 |
89.14 |
100.00 |
93.38 |
| Soybean thrips iflavirus 4 |
1 |
3835 |
636 |
16.60 |
16.60 |
16.60 |
100.00 |
100.00 |
100.00 |
100.00 |
| Thrace picorna-like virus 1 |
2 |
1172 |
2,010 |
82.45 |
34.10 |
130.79 |
91.62 |
89.58 |
93.65 |
91.62 |
| Yongsan picorna-like virus 1 |
64 |
4085 |
55,324 |
62.58 |
10.27 |
180.88 |
89.40 |
85.05 |
100.00 |
89.11 |
| Yongsan picorna-like virus 2 |
4 |
9573 |
58,132 |
165.26 |
34.98 |
535.91 |
100.00 |
100.00 |
100.00 |
100.00 |
| +ssRNA - Luteoviridae |
| Marma virus |
23 |
3160 |
39,344 |
70.95 |
11.62 |
129.64 |
100.00 |
100.00 |
100.00 |
100.00 |
| +ssRNA - Narnaviridae |
| Culex narnavirus 1 |
1 |
513 |
63 |
12.07 |
12.07 |
12.07 |
100.00 |
100.00 |
100.00 |
100.00 |
| Manitoba narnavirus 1* |
2 |
1760 |
391 |
18.77 |
13.02 |
24.52 |
80.59 |
80.29 |
80.89 |
80.59 |
| +ssRNA - Negevirus |
| Big Cypress virus |
3 |
9570 |
6,079 |
37.12 |
18.89 |
65.64 |
98.77 |
96.30 |
100.00 |
100.00 |
| Bro virus |
1 |
11375 |
3,826 |
33.85 |
33.85 |
33.85 |
90.00 |
90.00 |
90.00 |
90.00 |
| Cordoba virus |
14 |
5133 |
135,594 |
548.17 |
17.51 |
2,225.85 |
97.10 |
93.75 |
100.00 |
97.23 |
| Manitoba mononega-like virus 1* |
1 |
11180 |
6,558 |
59.07 |
59.07 |
59.07 |
73.21 |
73.21 |
73.21 |
73.21 |
| Manitoba mononega-like virus 2* |
1 |
2477 |
494 |
20.03 |
20.03 |
20.03 |
75.00 |
75.00 |
75.00 |
75.00 |
| Manitoba mononega-like virus 3* |
1 |
5456 |
2,317 |
42.65 |
42.65 |
42.65 |
78.57 |
78.57 |
78.57 |
78.57 |
| Mekrijarvi Negevirus |
6 |
9873 |
167,549 |
294.01 |
30.28 |
1,262.63 |
94.13 |
90.78 |
100.00 |
93.40 |
| Utsjoki negevirus 3 |
2 |
989 |
416 |
21.12 |
18.00 |
24.24 |
99.02 |
99.01 |
99.03 |
99.02 |
| +ssRNA - Nodaviridae |
| Hubei noda-like virus 12 |
2 |
4762 |
4,244 |
54.47 |
23.60 |
85.34 |
95.83 |
91.67 |
100.00 |
95.83 |
| +ssRNA - Tombusviridae |
| Des Moines River virus |
4 |
2361 |
35,117 |
486.06 |
34.94 |
897.17 |
100.00 |
100.00 |
100.00 |
100.00 |
| Hubei mosquito virus 4 |
6 |
5103 |
2,919 |
16.68 |
10.02 |
39.59 |
96.50 |
92.65 |
100.00 |
95.70 |
| Manitoba tombus-like virus 1* |
5 |
2340 |
15,873 |
157.57 |
74.52 |
277.22 |
75.68 |
72.73 |
76.92 |
76.19 |
| Tiger mosquito bi-segmented tombus-like virus |
1 |
2351 |
13,049 |
557.41 |
557.41 |
557.41 |
100.00 |
100.00 |
100.00 |
100.00 |
| +ssRNA - Tymoviridae |
| Hubei macula-like virus 3 |
8 |
6059 |
530,385 |
1,092.52 |
11.15 |
7,749.86 |
96.13 |
92.15 |
100.00 |
96.63 |
| Manitoba tymo-like virus 1* |
1 |
6302 |
1,482 |
23.67 |
23.67 |
23.67 |
66.79 |
66.79 |
66.79 |
66.79 |
| +ssRNA - Virgaviridae |
| Hubei virga-like virus 2 |
6 |
947 |
505 |
13.26 |
10.94 |
15.50 |
99.04 |
96.27 |
100.00 |
100.00 |
| Manitoba virgavirus 1* |
1 |
1675 |
186 |
11.06 |
11.06 |
11.06 |
83.83 |
83.83 |
83.83 |
83.83 |
| -ssRNA - Chuviridae |
| Chuvirus |
39 |
6799 |
22,130 |
28.00 |
10.17 |
214.52 |
97.49 |
89.66 |
100.00 |
97.02 |
| -ssRNA - Orthomyxoviridae |
| Astopletus virus |
29 |
1044 |
5,975 |
32.63 |
10.91 |
107.95 |
99.06 |
95.77 |
100.00 |
100.00 |
| Wuhan mosquito virus 6 |
101 |
2467 |
133,667 |
176.35 |
12.58 |
641.58 |
99.76 |
97.69 |
100.00 |
100.00 |
| -ssRNA - Peribunyaviridae |
| Culex bunyavirus 2 |
19 |
1896 |
6,255 |
23.92 |
10.28 |
49.84 |
100.00 |
100.00 |
100.00 |
100.00 |
| -ssRNA - Rhabdoviridae |
| Canya virus |
9 |
2444 |
2,613 |
29.27 |
11.64 |
66.33 |
90.87 |
85.05 |
100.00 |
85.92 |
| Culex Rhabdo-like virus |
4 |
1973 |
807 |
14.68 |
10.87 |
23.28 |
100.00 |
100.00 |
100.00 |
100.00 |
| Culex rhabdovirus |
2 |
429 |
997 |
116.26 |
74.47 |
158.06 |
100.00 |
100.00 |
100.00 |
100.00 |
| Elisy virus |
21 |
1817 |
3,849 |
19.29 |
10.10 |
40.69 |
99.27 |
96.41 |
100.00 |
100.00 |
| Flanders hapavirus |
81 |
8773 |
104,235 |
113.05 |
10.00 |
686.87 |
99.90 |
95.96 |
100.00 |
100.00 |
| Manitoba Rhabdovirus 1* |
20 |
5085 |
13,911 |
26.41 |
10.21 |
68.72 |
77.30 |
69.42 |
83.33 |
77.90 |
| Manitoba rhabdovirus 2* |
1 |
4648 |
2,401 |
51.70 |
51.70 |
51.70 |
75.00 |
75.00 |
75.00 |
75.00 |
| Manitoba rhabdovirus 3* |
5 |
6071 |
1,153 |
16.51 |
11.30 |
23.92 |
80.94 |
66.04 |
84.85 |
84.62 |
| Manitoba virus |
5 |
1589 |
1,003 |
19.71 |
15.74 |
24.80 |
99.76 |
98.80 |
100.00 |
100.00 |
| Merida virus |
55 |
7483 |
76,697 |
91.60 |
11.06 |
276.87 |
99.86 |
97.14 |
100.00 |
100.00 |
| Riverside virus 1 |
17 |
8033 |
18,623 |
45.08 |
10.80 |
120.41 |
90.20 |
85.32 |
93.01 |
90.00 |
| dsDNA - Iridoviridae |
| Manitoba iridescent virus 1* |
1 |
797 |
137 |
16.99 |
16.99 |
16.99 |
78.74 |
78.74 |
78.74 |
78.74 |
| dsRNA - Birnaviridae |
| Ballard Lake virus |
48 |
3472 |
682,541 |
431.81 |
10.84 |
2,260.59 |
99.86 |
93.27 |
100.00 |
100.00 |
| dsRNA - Partitiviridae |
| Partitivirus-like Culex mosquito virus |
12 |
1751 |
4,477 |
23.28 |
11.49 |
45.83 |
100.00 |
100.00 |
100.00 |
100.00 |
| dsRNA - Totiviridae |
| Gouley virus |
3 |
368 |
117 |
12.22 |
10.42 |
14.89 |
95.04 |
92.86 |
97.67 |
94.59 |
| Hattula totivirus 1 |
1 |
4909 |
702 |
14.41 |
14.41 |
14.41 |
89.07 |
89.07 |
89.07 |
89.07 |
| Manitoba toti-like virus 1* |
5 |
8930 |
13,869 |
39.82 |
11.18 |
127.46 |
69.92 |
67.43 |
73.11 |
68.10 |
| Manitoba toti-like virus 2* |
1 |
3123 |
418 |
13.45 |
13.45 |
13.45 |
60.24 |
60.24 |
60.24 |
60.24 |
| Manitoba toti-like virus 3* |
4 |
4626 |
1,772 |
15.11 |
11.20 |
18.40 |
73.53 |
72.22 |
74.90 |
73.50 |
| Snelk virus |
4 |
295 |
496 |
41.15 |
23.15 |
67.61 |
100.00 |
100.00 |
100.00 |
100.00 |
| ssDNA - Parvoviridae |
| Aedes albopictus densovirus |
4 |
3355 |
14,051 |
139.82 |
94.27 |
203.18 |
97.46 |
89.86 |
100.00 |
100.00 |
| Aedes vexans densovirus isolate |
1 |
3367 |
594 |
17.69 |
17.69 |
17.69 |
100.00 |
100.00 |
100.00 |
100.00 |
| Culex densovirus |
8 |
1697 |
6,035 |
127.22 |
11.65 |
490.03 |
99.56 |
97.71 |
100.00 |
100.00 |
| Grus japonensis parvoviridae |
1 |
570 |
366 |
60.82 |
60.82 |
60.82 |
100.00 |
100.00 |
100.00 |
100.00 |
Virus Detections by Species
virus_master_2023 %>%
group_by(mosquito_species, virus_name) %>%
summarise(count = n_distinct(virus_name, sample_number)) %>%
pivot_wider(names_from = mosquito_species, values_from = count, values_fill = 0) %>%
mutate("Aedes canadensis \n Total: 1" = (`Aedes canadensis` / 1) * 100,
"Aedes vexans \n Total: 19" = (`Aedes vexans` / 19) * 100,
"Anopheles earlei \n Total: 1" = (`Anopheles earlei` / 1) * 100,
"Coquillettidia perturbans \n Total: 6" = (`Coquillettidia perturbans` / 6) * 100,
"Culex tarsalis \n Total: 11" = (`Culex tarsalis` / 11) * 100,
"Ochlerotatus dorsalis \n Total: 5" = (`Ochlerotatus dorsalis` / 5) * 100,
"Ochlerotatus flavescens \n Total: 1" = (`Ochlerotatus flavescens` / 1) * 100,
"Ochlerotatus triseriatus \n Total: 1" = (`Ochlerotatus triseriatus` / 1) * 100,
) %>% select(-`Aedes canadensis`:-`Ochlerotatus triseriatus`) %>%
left_join(virus_lineage, by = "virus_name") %>%
left_join(years, by = "virus_name") %>%
relocate("2020", .after = "virus_name") %>% relocate("2021", .after = "2020") %>%
mutate(across(.cols = c("2020", "2021"),
~case_when(. == "1" ~ TRUE,
. == "0" ~ FALSE))) %>%
mutate(across(.cols = "virus_name",
~case_when(grepl("Manitoba", virus_name) & !grepl("Manitoba virus", virus_name) ~
paste0(., "*"),
TRUE ~ .))) %>%
group_by(genome, viral_family) %>%
arrange(genome, viral_family) %>%
gt() %>%
fmt_number(columns = "Aedes canadensis \n Total: 1":"Ochlerotatus triseriatus \n Total: 1",
decimals = 2) %>%
tab_spanner(label = "Percent of Libraries Detected by Species",
columns = c("Aedes canadensis \n Total: 1":"Ochlerotatus triseriatus \n Total: 1")) %>%
tab_spanner(label = html("Years Detected"),
columns = c("2020":"2021")) %>%
cols_label(
"Aedes canadensis \n Total: 1" = html("<em>Aedes canadensis</em> <br> Total: 1"),
"Aedes vexans \n Total: 19" = html("<em>Aedes vexans</em> <br> Total: 19"),
"Anopheles earlei \n Total: 1" = html("<em>Anopheles earlei</em> <br> Total: 1"),
"Coquillettidia perturbans \n Total: 6" = html("<em>Coquillettidia perturbans</em> <br> Total: 6"),
"Culex tarsalis \n Total: 11" = html("<em>Culex tarsalis</em> <br> Total: 11"),
"Ochlerotatus dorsalis \n Total: 5" = html("<em>Ochlerotatus dorsalis</em> <br> Total: 5"),
"Ochlerotatus flavescens \n Total: 1" = html("<em>Ochlerotatus flavescens</em> <br> Total: 1"),
"Ochlerotatus triseriatus \n Total: 1" = html("<em>Ochlerotatus triseriatus</em> <br> Total: 1"),
virus_name = "Virus") %>%
cols_align(align = "center",
columns = "2020":"Ochlerotatus triseriatus \n Total: 1") %>%
tab_style(
style = list(cell_fill(color = "grey"),
cell_text(weight = "bold")),
locations = cells_row_groups(groups = everything())) %>%
data_color(columns = `Aedes canadensis \n Total: 1`:last_col(),
palette = "viridis",
direction = "row") %>%
tab_style(
style = cell_borders(
sides = "left",
weight = px(2),
color = "black"),
locations = cells_body(
columns = c("Aedes canadensis \n Total: 1"))) %>%
tab_footnote("* Putatively novel virus") %>%
tab_options(., container.width = 1500)
| Virus |
Years Detected
|
Percent of Libraries Detected by Species
|
| 2020 |
2021 |
Aedes canadensis Total: 1 |
Aedes vexans Total: 19 |
Anopheles earlei Total: 1 |
Coquillettidia perturbans Total: 6 |
Culex tarsalis Total: 11 |
Ochlerotatus dorsalis Total: 5 |
Ochlerotatus flavescens Total: 1 |
Ochlerotatus triseriatus Total: 1 |
| +ssRNA - Dicistroviridae |
| Black queen cell virus |
TRUE |
FALSE |
0.00 |
5.26 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Soybean thrips dicistrovirus |
TRUE |
TRUE |
0.00 |
15.79 |
0.00 |
0.00 |
45.45 |
20.00 |
0.00 |
0.00 |
| Manitoba dicistro-like virus 1* |
TRUE |
FALSE |
0.00 |
0.00 |
0.00 |
0.00 |
9.09 |
0.00 |
0.00 |
0.00 |
| +ssRNA - Flaviviridae |
| Inari jingmenvirus |
TRUE |
FALSE |
0.00 |
5.26 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Placeda virus |
TRUE |
TRUE |
0.00 |
10.53 |
0.00 |
0.00 |
100.00 |
0.00 |
0.00 |
0.00 |
| +ssRNA - Iflaviridae |
| Hanko iflavirus 1 |
TRUE |
TRUE |
0.00 |
21.05 |
0.00 |
16.67 |
9.09 |
100.00 |
100.00 |
0.00 |
| Hanko iflavirus 2 |
TRUE |
TRUE |
0.00 |
57.89 |
0.00 |
16.67 |
0.00 |
20.00 |
0.00 |
0.00 |
| Hubei arthropod virus 1 |
FALSE |
TRUE |
0.00 |
5.26 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Manitoba iflavirus 1* |
TRUE |
TRUE |
0.00 |
47.37 |
0.00 |
0.00 |
0.00 |
20.00 |
0.00 |
0.00 |
| Manitoba picorna-like virus 1* |
TRUE |
TRUE |
0.00 |
63.16 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Pedersore iflavirus |
TRUE |
TRUE |
0.00 |
36.84 |
0.00 |
33.33 |
27.27 |
80.00 |
100.00 |
0.00 |
| Thrace picorna-like virus 1 |
FALSE |
TRUE |
0.00 |
10.53 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Yongsan picorna-like virus 1 |
TRUE |
TRUE |
0.00 |
94.74 |
0.00 |
0.00 |
0.00 |
60.00 |
0.00 |
0.00 |
| Cafluga virus |
TRUE |
FALSE |
0.00 |
0.00 |
0.00 |
16.67 |
0.00 |
20.00 |
0.00 |
0.00 |
| Soybean thrips iflavirus 4 |
TRUE |
FALSE |
0.00 |
0.00 |
0.00 |
16.67 |
0.00 |
0.00 |
0.00 |
0.00 |
| Culex Iflavi-like virus 4 |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
63.64 |
0.00 |
0.00 |
0.00 |
| Culex iflavilike virus 3 |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
100.00 |
0.00 |
0.00 |
0.00 |
| Yongsan picorna-like virus 2 |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
27.27 |
0.00 |
0.00 |
0.00 |
| +ssRNA - Luteoviridae |
| Marma virus |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
16.67 |
100.00 |
0.00 |
0.00 |
0.00 |
| +ssRNA - Narnaviridae |
| Manitoba narnavirus 1* |
FALSE |
TRUE |
0.00 |
0.00 |
100.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Culex narnavirus 1 |
TRUE |
FALSE |
0.00 |
0.00 |
0.00 |
0.00 |
9.09 |
0.00 |
0.00 |
0.00 |
| +ssRNA - Negevirus |
| Bro virus |
FALSE |
TRUE |
100.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Manitoba mononega-like virus 1* |
FALSE |
TRUE |
100.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Manitoba mononega-like virus 2* |
FALSE |
TRUE |
100.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Big Cypress virus |
TRUE |
TRUE |
0.00 |
15.79 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Cordoba virus |
FALSE |
TRUE |
0.00 |
15.79 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Mekrijarvi Negevirus |
TRUE |
TRUE |
0.00 |
15.79 |
0.00 |
0.00 |
0.00 |
60.00 |
0.00 |
0.00 |
| Utsjoki negevirus 3 |
TRUE |
FALSE |
0.00 |
10.53 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Manitoba mononega-like virus 3* |
TRUE |
FALSE |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
100.00 |
| +ssRNA - Nodaviridae |
| Hubei noda-like virus 12 |
FALSE |
TRUE |
0.00 |
0.00 |
0.00 |
16.67 |
9.09 |
0.00 |
0.00 |
0.00 |
| +ssRNA - Tombusviridae |
| Des Moines River virus |
TRUE |
FALSE |
0.00 |
5.26 |
0.00 |
0.00 |
27.27 |
0.00 |
0.00 |
0.00 |
| Hubei mosquito virus 4 |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
54.55 |
0.00 |
0.00 |
0.00 |
| Manitoba tombus-like virus 1* |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
45.45 |
0.00 |
0.00 |
0.00 |
| Tiger mosquito bi-segmented tombus-like virus |
FALSE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
9.09 |
0.00 |
0.00 |
0.00 |
| +ssRNA - Tymoviridae |
| Hubei macula-like virus 3 |
TRUE |
TRUE |
0.00 |
21.05 |
0.00 |
0.00 |
0.00 |
20.00 |
0.00 |
0.00 |
| Manitoba tymo-like virus 1* |
FALSE |
TRUE |
0.00 |
5.26 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| +ssRNA - Virgaviridae |
| Hubei virga-like virus 2 |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
36.36 |
0.00 |
0.00 |
0.00 |
| Manitoba virgavirus 1* |
TRUE |
FALSE |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
20.00 |
0.00 |
0.00 |
| -ssRNA - Chuviridae |
| Chuvirus |
TRUE |
TRUE |
0.00 |
89.47 |
0.00 |
0.00 |
9.09 |
60.00 |
0.00 |
0.00 |
| -ssRNA - Orthomyxoviridae |
| Wuhan mosquito virus 6 |
TRUE |
TRUE |
0.00 |
10.53 |
0.00 |
16.67 |
100.00 |
0.00 |
0.00 |
0.00 |
| Astopletus virus |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
100.00 |
0.00 |
0.00 |
0.00 |
| -ssRNA - Peribunyaviridae |
| Culex bunyavirus 2 |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
100.00 |
0.00 |
0.00 |
0.00 |
| -ssRNA - Rhabdoviridae |
| Manitoba rhabdovirus 3* |
TRUE |
TRUE |
100.00 |
0.00 |
0.00 |
0.00 |
36.36 |
0.00 |
0.00 |
0.00 |
| Flanders hapavirus |
TRUE |
TRUE |
0.00 |
15.79 |
0.00 |
0.00 |
90.91 |
0.00 |
0.00 |
0.00 |
| Manitoba Rhabdovirus 1* |
TRUE |
TRUE |
0.00 |
73.68 |
0.00 |
0.00 |
0.00 |
20.00 |
0.00 |
0.00 |
| Manitoba rhabdovirus 2* |
TRUE |
FALSE |
0.00 |
5.26 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Riverside virus 1 |
TRUE |
TRUE |
0.00 |
73.68 |
0.00 |
0.00 |
0.00 |
20.00 |
0.00 |
0.00 |
| Canya virus |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
63.64 |
0.00 |
0.00 |
0.00 |
| Culex Rhabdo-like virus |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
27.27 |
0.00 |
0.00 |
0.00 |
| Culex rhabdovirus |
FALSE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
18.18 |
0.00 |
0.00 |
0.00 |
| Elisy virus |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
45.45 |
0.00 |
0.00 |
0.00 |
| Manitoba virus |
FALSE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
9.09 |
0.00 |
0.00 |
0.00 |
| Merida virus |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
100.00 |
0.00 |
0.00 |
0.00 |
| dsDNA - Iridoviridae |
| Manitoba iridescent virus 1* |
FALSE |
TRUE |
0.00 |
0.00 |
0.00 |
16.67 |
0.00 |
0.00 |
0.00 |
0.00 |
| dsRNA - Birnaviridae |
| Ballard Lake virus |
TRUE |
TRUE |
0.00 |
100.00 |
0.00 |
66.67 |
18.18 |
20.00 |
0.00 |
0.00 |
| dsRNA - Partitiviridae |
| Partitivirus-like Culex mosquito virus |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
100.00 |
0.00 |
0.00 |
0.00 |
| dsRNA - Totiviridae |
| Manitoba toti-like virus 2* |
FALSE |
TRUE |
100.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Manitoba toti-like virus 1* |
TRUE |
TRUE |
0.00 |
10.53 |
0.00 |
0.00 |
27.27 |
0.00 |
0.00 |
0.00 |
| Gouley virus |
TRUE |
FALSE |
0.00 |
0.00 |
0.00 |
0.00 |
27.27 |
0.00 |
0.00 |
0.00 |
| Snelk virus |
TRUE |
TRUE |
0.00 |
0.00 |
0.00 |
0.00 |
36.36 |
0.00 |
0.00 |
0.00 |
| Manitoba toti-like virus 3* |
TRUE |
FALSE |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
80.00 |
0.00 |
0.00 |
| Hattula totivirus 1 |
TRUE |
FALSE |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
100.00 |
| ssDNA - Parvoviridae |
| Aedes vexans densovirus isolate |
FALSE |
TRUE |
0.00 |
5.26 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
| Culex densovirus |
TRUE |
TRUE |
0.00 |
5.26 |
0.00 |
66.67 |
9.09 |
0.00 |
0.00 |
0.00 |
| Aedes albopictus densovirus |
FALSE |
TRUE |
0.00 |
0.00 |
0.00 |
33.33 |
9.09 |
0.00 |
0.00 |
0.00 |
| Grus japonensis parvoviridae |
FALSE |
TRUE |
0.00 |
0.00 |
0.00 |
16.67 |
0.00 |
0.00 |
0.00 |
0.00 |
Viral Families
virus_master_2023 %>%
distinct(virus_name, viral_family, .keep_all = TRUE) %>%
group_by(genome, viral_family) %>%
summarise(n = n()) %>%
arrange(genome, n) %>%
ggplot(aes(x = fct_inorder(viral_family), y = n)) +
geom_col(aes(fill = genome)) +
scale_fill_viridis_d("Genome") +
scale_y_continuous(limits = c(0, 14), breaks = c(0, 2, 4, 6, 8, 10, 12, 14), expand = c(0,0)) +
coord_flip() +
theme_bw() +
labs(x = "Viral Family",
y = "Number of Distinct Viruses Detected")

virus_master_2023 %>%
filter(novel_flag == "Not Novel") %>%
distinct(virus_name, viral_family, .keep_all = TRUE) %>%
group_by(genome, viral_family) %>%
summarise(n = n()) %>%
arrange(genome, n) %>%
ggplot(aes(x = fct_inorder(viral_family), y = n)) +
geom_col(aes(fill = genome)) +
scale_fill_viridis_d("Genome") +
scale_y_continuous(limits = c(0, 12), breaks = c(0, 2, 4, 6, 8, 10, 12), expand = c(0,0)) +
coord_flip() +
theme_bw() +
labs(x = "Viral Family",
y = "Number of Distinct Viruses Detected")

virus_master_2023 %>%
filter(novel_flag != "Not Novel") %>%
distinct(virus_name, viral_family, .keep_all = TRUE) %>%
group_by(genome, viral_family) %>%
summarise(n = n()) %>%
arrange(genome, n) %>%
ggplot(aes(x = fct_inorder(viral_family), y = n)) +
geom_col(aes(fill = genome)) +
scale_fill_viridis_d("Genome") +
scale_y_continuous(limits = c(0, 4), breaks = c(0, 1, 2, 3, 4), expand = c(0,0)) +
coord_flip() +
theme_bw() +
labs(x = "Viral Family",
y = "Number of Distinct Viruses Detected")

virus_master_2023 %>%
distinct(virus_name, viral_family, .keep_all = TRUE) %>%
group_by(genome, viral_family) %>%
summarise(n = n()) %>%
arrange(genome, desc(n)) %>%
adorn_totals() %>%
gt() %>%
cols_label(
genome = "Genome",
viral_family = "Family")
| Genome |
Family |
n |
| +ssRNA |
Iflaviridae |
13 |
| +ssRNA |
Negevirus |
8 |
| +ssRNA |
Tombusviridae |
4 |
| +ssRNA |
Dicistroviridae |
3 |
| +ssRNA |
Flaviviridae |
2 |
| +ssRNA |
Narnaviridae |
2 |
| +ssRNA |
Tymoviridae |
2 |
| +ssRNA |
Virgaviridae |
2 |
| +ssRNA |
Luteoviridae |
1 |
| +ssRNA |
Nodaviridae |
1 |
| -ssRNA |
Rhabdoviridae |
11 |
| -ssRNA |
Orthomyxoviridae |
2 |
| -ssRNA |
Chuviridae |
1 |
| -ssRNA |
Peribunyaviridae |
1 |
| dsDNA |
Iridoviridae |
1 |
| dsRNA |
Totiviridae |
6 |
| dsRNA |
Birnaviridae |
1 |
| dsRNA |
Partitiviridae |
1 |
| ssDNA |
Parvoviridae |
4 |
| Total |
- |
66 |
virus_master_2023 %>%
distinct(virus_name, viral_family, .keep_all = TRUE) %>%
group_by(genome, viral_family) %>%
summarise(n = n()) %>%
arrange(genome, desc(n)) %>%
adorn_totals() %>%
gt() %>%
cols_label(
genome = "Genome",
viral_family = "Family")
| Genome |
Family |
n |
| +ssRNA |
Iflaviridae |
13 |
| +ssRNA |
Negevirus |
8 |
| +ssRNA |
Tombusviridae |
4 |
| +ssRNA |
Dicistroviridae |
3 |
| +ssRNA |
Flaviviridae |
2 |
| +ssRNA |
Narnaviridae |
2 |
| +ssRNA |
Tymoviridae |
2 |
| +ssRNA |
Virgaviridae |
2 |
| +ssRNA |
Luteoviridae |
1 |
| +ssRNA |
Nodaviridae |
1 |
| -ssRNA |
Rhabdoviridae |
11 |
| -ssRNA |
Orthomyxoviridae |
2 |
| -ssRNA |
Chuviridae |
1 |
| -ssRNA |
Peribunyaviridae |
1 |
| dsDNA |
Iridoviridae |
1 |
| dsRNA |
Totiviridae |
6 |
| dsRNA |
Birnaviridae |
1 |
| dsRNA |
Partitiviridae |
1 |
| ssDNA |
Parvoviridae |
4 |
| Total |
- |
66 |
Novel Viruses
virus_master_2023 %>%
distinct(virus_name, viral_family, .keep_all = TRUE) %>%
filter(str_detect(virus_name, "Manitoba ")) %>%
filter(!str_detect(virus_name, "Manitoba virus")) %>%
group_by(genome, viral_family) %>%
summarise(n = n()) %>%
gt()
| viral_family |
n |
| +ssRNA |
| Dicistroviridae |
1 |
| Iflaviridae |
2 |
| Narnaviridae |
1 |
| Negevirus |
3 |
| Tombusviridae |
1 |
| Tymoviridae |
1 |
| Virgaviridae |
1 |
| -ssRNA |
| Rhabdoviridae |
3 |
| dsDNA |
| Iridoviridae |
1 |
| dsRNA |
| Totiviridae |
3 |
virus_master_2023 %>%
distinct(virus_name, viral_family, .keep_all = TRUE) %>%
filter(str_detect(virus_name, "Manitoba ")) %>%
filter(!str_detect(virus_name, "Manitoba virus")) %>%
group_by(genome, virus_name) %>%
summarise(n = n()) %>%
adorn_totals() %>%
gt()
| genome |
virus_name |
n |
| +ssRNA |
Manitoba dicistro-like virus 1 |
1 |
| +ssRNA |
Manitoba iflavirus 1 |
1 |
| +ssRNA |
Manitoba mononega-like virus 1 |
1 |
| +ssRNA |
Manitoba mononega-like virus 2 |
1 |
| +ssRNA |
Manitoba mononega-like virus 3 |
1 |
| +ssRNA |
Manitoba narnavirus 1 |
1 |
| +ssRNA |
Manitoba picorna-like virus 1 |
1 |
| +ssRNA |
Manitoba tombus-like virus 1 |
1 |
| +ssRNA |
Manitoba tymo-like virus 1 |
1 |
| +ssRNA |
Manitoba virgavirus 1 |
1 |
| -ssRNA |
Manitoba Rhabdovirus 1 |
1 |
| -ssRNA |
Manitoba rhabdovirus 2 |
1 |
| -ssRNA |
Manitoba rhabdovirus 3 |
1 |
| dsDNA |
Manitoba iridescent virus 1 |
1 |
| dsRNA |
Manitoba toti-like virus 1 |
1 |
| dsRNA |
Manitoba toti-like virus 2 |
1 |
| dsRNA |
Manitoba toti-like virus 3 |
1 |
| Total |
- |
17 |
Virus Profiles
Below are summaries for each virus detected.
virus_profile_table <- function(virus) {
virus_table <<- virus_master_2023 %>%
filter(virus_name == virus) %>%
#select(-"contig_sequences") %>%
summarise(
num_species = n_distinct(mosquito_species),
num_contig = n(),
longest_contig = max(contig_length),
shortest_contig = min(contig_length),
avg_nt_id = mean(greatest_identity_percent),
max_nt_id = max(greatest_identity_percent),
min_nt_id = min(greatest_identity_percent)
) %>%
gt() %>%
cols_label(
longest_contig = "Max Contig",
shortest_contig = "Min Contig",
avg_nt_id = "Average aa Id",
max_nt_id = "Max aa Id",
min_nt_id = "Min aa Id",
num_contig = "n Contigs",
num_species = "n Species"
) %>%
tab_header(
title = paste0("Summary Stats for", " ", virus)
) %>%
fmt_number(
columns = 4:last_col(),
decimals = 2
)
}
# Arrange df for virus reporting
virus_master_2023 <<- virus_master_2023 %>%
mutate(across(.cols = "virus_name",
~case_when(grepl("Manitoba", virus_name) & !grepl("Manitoba virus", virus_name) ~
paste0(., "*"),
TRUE ~ .))) %>%
arrange(desc(genome)) %>%
drop_na(virus_name)
for(virus in unique(virus_master_2023$virus_name)) {
genome <- virus_master_2023 %>%
arrange(desc(genome)) %>%
drop_na(virus_name) %>%
filter(virus_name == virus) %>%
pull(genome) %>%
head(1)
genome <- paste0(genome)
family <- virus_master_2023 %>%
filter(virus_name == virus) %>%
pull(viral_family) %>%
head(1)
family <- paste0(family)
sample_detections <- virus_master_2023 %>%
filter(virus_name == virus) %>%
distinct(sample_number)
sample_detections <- paste0(nrow(sample_detections))
cat('\n\n##', virus, '\n\n')
cat('\n\n>', virus, 'has a ', genome, 'genome and is a member of the family', family, 'and was detected in', sample_detections, 'sample(s).', 'See summary figures and tables below.', '\n\n')
print(suppressMessages(
virus_master_2023 %>%
filter(virus_name == virus) %>%
select(-"contig_sequence") %>%
group_by(mosquito_species, collection_year, location_pool) %>%
summarise(n = n_distinct(sample_number)) %>%
ggplot(aes(x = mosquito_species, y = n, fill = location_pool)) +
geom_col() +
facet_grid(. ~ collection_year) +
scale_fill_viridis_d("Location", option = "magma") +
theme_bw() +
labs(title = paste0("Number of Virus Detections"),
subtitle = paste0("For ", virus, " by Year, Species and Location")) +
theme(plot.title = element_text(size = 16, face = "bold"),
axis.title.x = element_blank(),
axis.text.x = element_text(angle = 45, vjust = 0.5))
))
cat('\n\n###', 'Years {.unlisted .unnumbered}', '\n\n')
print(htmltools::tagList(
virus_master_2023 %>%
filter(virus_name == virus) %>%
group_by(collection_year) %>%
summarise(n = n_distinct(sample_number)) %>%
gt() %>%
cols_label(collection_year = "Year(s) Detected")
))
cat('\n\n###', 'Locations {.unlisted .unnumbered}', '\n\n')
print(htmltools::tagList(
virus_master_2023 %>%
filter(virus_name == virus) %>%
group_by(location_pool) %>%
summarise(n = n_distinct(sample_number)) %>%
gt() %>%
cols_label(location_pool = "Location(s) Detected")
))
cat('\n\n###', 'Mosquito Species {.unlisted .unnumbered}', '\n\n')
print(htmltools::tagList(
virus_master_2023 %>%
filter(virus_name == virus) %>%
group_by(mosquito_species) %>%
summarise(n = n_distinct(sample_number)) %>%
gt() %>%
cols_label(mosquito_species = "Mosquito Hosts")
))
cat('\n\n###', 'Contig Summary {.unlisted .unnumbered}', '\n\n')
virus_profile_table(virus)
print(htmltools::tagList(virus_table))
cat('\n\n###', 'aa Identity Summary {.unlisted .unnumbered}', '\n\n')
print(suppressMessages(
virus_master_2023 %>%
filter(virus_name == virus) %>%
select(-"contig_sequence") %>%
ggplot(aes(x = greatest_identity_percent)) +
geom_histogram(aes(fill = greatest_identity_percent < 85)) +
geom_vline(xintercept = 85, linetype = "dotted", colour = "firebrick") +
theme_bw() +
labs(title = paste0("aa Identity"),
subtitle = paste0("For ", virus),
x = "aa Identity",
y = "Number of Contigs") +
theme(plot.title = element_text(size = 16, face = "bold"),
axis.title.x = element_blank(),
axis.text.x = element_text(angle = 45, vjust = 0.5)) +
theme(legend.position = "none")
))
}
Culex densovirus
Culex densovirus has a ssDNA genome and is a member of the family
Parvoviridae and was detected in 6 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
3
|
|
2021
|
3
|
Locations
|
Location(s) Detected
|
n
|
|
Cypress River
|
3
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
1
|
|
Western MB
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
1
|
|
Coquillettidia perturbans
|
4
|
|
Culex tarsalis
|
1
|
Contig Summary
|
Summary Stats for Culex densovirus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
3
|
8
|
1697
|
393.00
|
99.56
|
100.00
|
97.71
|
aa Identity Summary

Aedes albopictus densovirus
Aedes albopictus densovirus has a ssDNA genome and is a member of the
family Parvoviridae and was detected in 3 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
3
|
Locations
|
Location(s) Detected
|
n
|
|
Cypress River
|
2
|
|
Virden
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Coquillettidia perturbans
|
2
|
|
Culex tarsalis
|
1
|
Contig Summary
|
Summary Stats for Aedes albopictus densovirus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
4
|
3355
|
323.00
|
97.46
|
100.00
|
89.86
|
aa Identity Summary

Aedes vexans densovirus isolate
Aedes vexans densovirus isolate has a ssDNA genome and is a member of
the family Parvoviridae and was detected in 1 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Cypress River
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
1
|
Contig Summary
|
Summary Stats for Aedes vexans densovirus isolate
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
3367
|
3,367.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Grus japonensis parvoviridae
Grus japonensis parvoviridae has a ssDNA genome and is a member of
the family Parvoviridae and was detected in 1 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Cypress River
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Coquillettidia perturbans
|
1
|
Contig Summary
|
Summary Stats for Grus japonensis parvoviridae
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
570
|
570.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Snelk virus
Snelk virus has a dsRNA genome and is a member of the family
Totiviridae and was detected in 4 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
3
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
|
Carberry
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake, Virden & Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
4
|
Contig Summary
|
Summary Stats for Snelk virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
4
|
295
|
262.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Partitivirus-like Culex mosquito virus
Partitivirus-like Culex mosquito virus has a dsRNA genome and is a
member of the family Partitiviridae and was detected in 11 sample(s).
See summary figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
5
|
|
2021
|
6
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
3
|
|
Carberry
|
1
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
1
|
|
Shoal Lake, Virden & Souris
|
1
|
|
Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
11
|
Contig Summary
|
Summary Stats for Partitivirus-like Culex mosquito virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
12
|
1751
|
299.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Gouley virus
Gouley virus has a dsRNA genome and is a member of the family
Totiviridae and was detected in 3 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
3
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake, Virden & Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
3
|
Contig Summary
|
Summary Stats for Gouley virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
3
|
368
|
263.00
|
95.04
|
97.67
|
92.86
|
aa Identity Summary

Manitoba toti-like virus 1*
Manitoba toti-like virus 1* has a dsRNA genome and is a member of the
family Totiviridae and was detected in 5 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
2
|
|
2021
|
3
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
|
Cypress River
|
1
|
|
Shoal Lake
|
3
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
2
|
|
Culex tarsalis
|
3
|
Contig Summary
|
Summary Stats for Manitoba toti-like virus 1*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
5
|
8930
|
2,012.00
|
69.92
|
73.11
|
67.43
|
aa Identity Summary

Ballard Lake virus
Ballard Lake virus has a dsRNA genome and is a member of the family
Birnaviridae and was detected in 26 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
10
|
|
2021
|
16
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
2
|
|
Brandon
|
4
|
|
Carberry
|
1
|
|
Cypress River
|
3
|
|
Cypress River & Carberry
|
1
|
|
Killarney
|
2
|
|
Newdale
|
1
|
|
Shoal Lake
|
5
|
|
Souris
|
2
|
|
Virden
|
2
|
|
Virden & Souris
|
1
|
|
WPG Insect Contol
|
2
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
19
|
|
Coquillettidia perturbans
|
4
|
|
Culex tarsalis
|
2
|
|
Ochlerotatus dorsalis
|
1
|
Contig Summary
|
Summary Stats for Ballard Lake virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
4
|
48
|
3472
|
707.00
|
99.86
|
100.00
|
93.27
|
aa Identity Summary

Manitoba toti-like virus 2*
Manitoba toti-like virus 2* has a dsRNA genome and is a member of the
family Totiviridae and was detected in 1 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes canadensis
|
1
|
Contig Summary
|
Summary Stats for Manitoba toti-like virus 2*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
3123
|
3,123.00
|
60.24
|
60.24
|
60.24
|
aa Identity Summary

Hattula totivirus 1
Hattula totivirus 1 has a dsRNA genome and is a member of the family
Totiviridae and was detected in 1 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Multiple
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Ochlerotatus triseriatus
|
1
|
Contig Summary
|
Summary Stats for Hattula totivirus 1
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
4909
|
4,909.00
|
89.07
|
89.07
|
89.07
|
aa Identity Summary

Manitoba toti-like virus 3*
Manitoba toti-like virus 3* has a dsRNA genome and is a member of the
family Totiviridae and was detected in 4 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
4
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain & Killarney
|
1
|
|
Brandon
|
1
|
|
Shoal Lake
|
1
|
|
Virden & Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Ochlerotatus dorsalis
|
4
|
Contig Summary
|
Summary Stats for Manitoba toti-like virus 3*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
4
|
4626
|
1,821.00
|
73.53
|
74.90
|
72.22
|
aa Identity Summary

Manitoba iridescent virus 1*
Manitoba iridescent virus 1* has a dsDNA genome and is a member of
the family Iridoviridae and was detected in 1 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Cypress River
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Coquillettidia perturbans
|
1
|
Contig Summary
|
Summary Stats for Manitoba iridescent virus 1*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
797
|
797.00
|
78.74
|
78.74
|
78.74
|
aa Identity Summary

Riverside virus 1
Riverside virus 1 has a -ssRNA genome and is a member of the family
Rhabdoviridae and was detected in 15 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
6
|
|
2021
|
9
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
2
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Killarney
|
1
|
|
Newdale
|
1
|
|
Shoal Lake
|
4
|
|
Souris
|
1
|
|
Virden
|
1
|
|
Virden & Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
14
|
|
Ochlerotatus dorsalis
|
1
|
Contig Summary
|
Summary Stats for Riverside virus 1
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
17
|
8033
|
718.00
|
90.20
|
93.01
|
85.32
|
aa Identity Summary

Chuvirus
Chuvirus has a -ssRNA genome and is a member of the family Chuviridae
and was detected in 21 sample(s). See summary figures and tables
below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
9
|
|
2021
|
12
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
2
|
|
Boissevain & Killarney
|
1
|
|
Brandon
|
3
|
|
Carberry
|
2
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Killarney
|
1
|
|
Newdale
|
1
|
|
Shoal Lake
|
6
|
|
Souris
|
1
|
|
Virden
|
1
|
|
Virden & Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
17
|
|
Culex tarsalis
|
1
|
|
Ochlerotatus dorsalis
|
3
|
Contig Summary
|
Summary Stats for Chuvirus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
3
|
39
|
6799
|
433.00
|
97.49
|
100.00
|
89.66
|
aa Identity Summary

Merida virus
Merida virus has a -ssRNA genome and is a member of the family
Rhabdoviridae and was detected in 11 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
5
|
|
2021
|
6
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
3
|
|
Carberry
|
1
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
1
|
|
Shoal Lake, Virden & Souris
|
1
|
|
Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
11
|
Contig Summary
|
Summary Stats for Merida virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
55
|
7483
|
262.00
|
99.86
|
100.00
|
97.14
|
aa Identity Summary

Wuhan mosquito virus 6
Wuhan mosquito virus 6 has a -ssRNA genome and is a member of the
family Orthomyxoviridae and was detected in 14 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
7
|
|
2021
|
7
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
4
|
|
Carberry
|
1
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
2
|
|
Shoal Lake, Virden & Souris
|
1
|
|
Souris
|
1
|
|
WPG Insect Contol
|
1
|
|
Western MB
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
2
|
|
Coquillettidia perturbans
|
1
|
|
Culex tarsalis
|
11
|
Contig Summary
|
Summary Stats for Wuhan mosquito virus 6
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
3
|
101
|
2467
|
252.00
|
99.76
|
100.00
|
97.69
|
aa Identity Summary

Manitoba rhabdovirus 3*
Manitoba rhabdovirus 3* has a -ssRNA genome and is a member of the
family Rhabdoviridae and was detected in 5 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
|
2021
|
4
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
2
|
|
Carberry
|
1
|
|
Cypress River & Carberry
|
1
|
|
Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes canadensis
|
1
|
|
Culex tarsalis
|
4
|
Contig Summary
|
Summary Stats for Manitoba rhabdovirus 3*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
5
|
6071
|
587.00
|
80.94
|
84.85
|
66.04
|
aa Identity Summary

Flanders hapavirus
Flanders hapavirus has a -ssRNA genome and is a member of the family
Rhabdoviridae and was detected in 13 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
5
|
|
2021
|
8
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
3
|
|
Carberry
|
1
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
3
|
|
Shoal Lake, Virden & Souris
|
1
|
|
Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
3
|
|
Culex tarsalis
|
10
|
Contig Summary
|
Summary Stats for Flanders hapavirus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
81
|
8773
|
263.00
|
99.90
|
100.00
|
95.96
|
aa Identity Summary

Astopletus virus
Astopletus virus has a -ssRNA genome and is a member of the family
Orthomyxoviridae and was detected in 11 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
5
|
|
2021
|
6
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
3
|
|
Carberry
|
1
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
1
|
|
Shoal Lake, Virden & Souris
|
1
|
|
Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
11
|
Contig Summary
|
Summary Stats for Astopletus virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
29
|
1044
|
464.00
|
99.06
|
100.00
|
95.77
|
aa Identity Summary

Elisy virus
Elisy virus has a -ssRNA genome and is a member of the family
Rhabdoviridae and was detected in 5 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
3
|
|
2021
|
2
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
3
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
5
|
Contig Summary
|
Summary Stats for Elisy virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
21
|
1817
|
373.00
|
99.27
|
100.00
|
96.41
|
aa Identity Summary

Culex Rhabdo-like virus
Culex Rhabdo-like virus has a -ssRNA genome and is a member of the
family Rhabdoviridae and was detected in 3 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
|
2021
|
2
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
3
|
Contig Summary
|
Summary Stats for Culex Rhabdo-like virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
4
|
1973
|
672.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Culex bunyavirus 2
Culex bunyavirus 2 has a -ssRNA genome and is a member of the family
Peribunyaviridae and was detected in 11 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
5
|
|
2021
|
6
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
3
|
|
Carberry
|
1
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
1
|
|
Shoal Lake, Virden & Souris
|
1
|
|
Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
11
|
Contig Summary
|
Summary Stats for Culex bunyavirus 2
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
19
|
1896
|
350.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Canya virus
Canya virus has a -ssRNA genome and is a member of the family
Rhabdoviridae and was detected in 7 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
3
|
|
2021
|
4
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
3
|
|
Cypress River
|
1
|
|
Shoal Lake
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
7
|
Contig Summary
|
Summary Stats for Canya virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
9
|
2444
|
522.00
|
90.87
|
100.00
|
85.05
|
aa Identity Summary

Manitoba virus
Manitoba virus has a -ssRNA genome and is a member of the family
Rhabdoviridae and was detected in 1 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
1
|
Contig Summary
|
Summary Stats for Manitoba virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
5
|
1589
|
500.00
|
99.76
|
100.00
|
98.80
|
aa Identity Summary

Culex rhabdovirus
Culex rhabdovirus has a -ssRNA genome and is a member of the family
Rhabdoviridae and was detected in 2 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
2
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
|
Cypress River
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
2
|
Contig Summary
|
Summary Stats for Culex rhabdovirus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
2
|
429
|
359.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Manitoba Rhabdovirus 1*
Manitoba Rhabdovirus 1* has a -ssRNA genome and is a member of the
family Rhabdoviridae and was detected in 15 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
7
|
|
2021
|
8
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
2
|
|
Carberry
|
1
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Killarney
|
2
|
|
Newdale
|
1
|
|
Shoal Lake
|
3
|
|
Souris
|
1
|
|
Virden
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
14
|
|
Ochlerotatus dorsalis
|
1
|
Contig Summary
|
Summary Stats for Manitoba Rhabdovirus 1*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
20
|
5085
|
784.00
|
77.30
|
83.33
|
69.42
|
aa Identity Summary

Manitoba rhabdovirus 2*
Manitoba rhabdovirus 2* has a -ssRNA genome and is a member of the
family Rhabdoviridae and was detected in 1 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Shoal Lake
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
1
|
Contig Summary
|
Summary Stats for Manitoba rhabdovirus 2*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
4648
|
4,648.00
|
75.00
|
75.00
|
75.00
|
aa Identity Summary

Yongsan picorna-like virus 1
Yongsan picorna-like virus 1 has a +ssRNA genome and is a member of
the family Iflaviridae and was detected in 21 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
10
|
|
2021
|
11
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Boissevain & Killarney
|
1
|
|
Brandon
|
4
|
|
Carberry
|
1
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Killarney
|
2
|
|
Newdale
|
1
|
|
Shoal Lake
|
5
|
|
Souris
|
1
|
|
Virden
|
1
|
|
Virden & Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
18
|
|
Ochlerotatus dorsalis
|
3
|
Contig Summary
|
Summary Stats for Yongsan picorna-like virus 1
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
64
|
4085
|
510.00
|
89.40
|
100.00
|
85.05
|
aa Identity Summary

Hanko iflavirus 1
Hanko iflavirus 1 has a +ssRNA genome and is a member of the family
Iflaviridae and was detected in 12 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
8
|
|
2021
|
4
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain & Killarney
|
1
|
|
Brandon
|
1
|
|
Cypress River
|
1
|
|
Newdale
|
1
|
|
Shoal Lake
|
4
|
|
Virden & Souris
|
1
|
|
WPG Insect Contol
|
3
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
4
|
|
Coquillettidia perturbans
|
1
|
|
Culex tarsalis
|
1
|
|
Ochlerotatus dorsalis
|
5
|
|
Ochlerotatus flavescens
|
1
|
Contig Summary
|
Summary Stats for Hanko iflavirus 1
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
5
|
30
|
9246
|
308.00
|
97.49
|
100.00
|
93.45
|
aa Identity Summary

Pedersore iflavirus
Pedersore iflavirus has a +ssRNA genome and is a member of the family
Iflaviridae and was detected in 17 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
16
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain & Killarney
|
1
|
|
Brandon
|
5
|
|
Cypress River & Carberry
|
2
|
|
Killarney
|
1
|
|
Shoal Lake
|
4
|
|
Virden & Souris
|
1
|
|
WPG Insect Contol
|
2
|
|
Western MB
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
7
|
|
Coquillettidia perturbans
|
2
|
|
Culex tarsalis
|
3
|
|
Ochlerotatus dorsalis
|
4
|
|
Ochlerotatus flavescens
|
1
|
Contig Summary
|
Summary Stats for Pedersore iflavirus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
5
|
25
|
9899
|
286.00
|
93.47
|
100.00
|
89.14
|
aa Identity Summary

Marma virus
Marma virus has a +ssRNA genome and is a member of the family
Luteoviridae and was detected in 12 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
6
|
|
2021
|
6
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
3
|
|
Carberry
|
1
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
1
|
|
Shoal Lake, Virden & Souris
|
1
|
|
Souris
|
1
|
|
WPG Insect Contol
|
1
|
|
Western MB
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Coquillettidia perturbans
|
1
|
|
Culex tarsalis
|
11
|
Contig Summary
|
Summary Stats for Marma virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
23
|
3160
|
1,574.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Culex iflavilike virus 3
Culex iflavilike virus 3 has a +ssRNA genome and is a member of the
family Iflaviridae and was detected in 11 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
5
|
|
2021
|
6
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
3
|
|
Carberry
|
1
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
1
|
|
Shoal Lake, Virden & Souris
|
1
|
|
Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
11
|
Contig Summary
|
Summary Stats for Culex iflavilike virus 3
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
183
|
1824
|
250.00
|
99.49
|
100.00
|
94.19
|
aa Identity Summary

Placeda virus
Placeda virus has a +ssRNA genome and is a member of the family
Flaviviridae and was detected in 13 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
6
|
|
2021
|
7
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
4
|
|
Carberry
|
1
|
|
Cypress River
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake
|
2
|
|
Shoal Lake, Virden & Souris
|
1
|
|
Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
2
|
|
Culex tarsalis
|
11
|
Contig Summary
|
Summary Stats for Placeda virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
169
|
11737
|
252.00
|
97.87
|
100.00
|
86.24
|
aa Identity Summary

Culex Iflavi-like virus 4
Culex Iflavi-like virus 4 has a +ssRNA genome and is a member of the
family Iflaviridae and was detected in 7 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
4
|
|
2021
|
3
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
3
|
|
Carberry
|
1
|
|
Cypress River & Carberry
|
1
|
|
Shoal Lake, Virden & Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
7
|
Contig Summary
|
Summary Stats for Culex Iflavi-like virus 4
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
23
|
9811
|
285.00
|
99.81
|
100.00
|
96.20
|
aa Identity Summary

Hubei mosquito virus 4
Hubei mosquito virus 4 has a +ssRNA genome and is a member of the
family Tombusviridae and was detected in 6 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
3
|
|
2021
|
3
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
3
|
|
Carberry
|
1
|
|
Cypress River & Carberry
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
6
|
Contig Summary
|
Summary Stats for Hubei mosquito virus 4
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
6
|
5103
|
367.00
|
96.50
|
100.00
|
92.65
|
aa Identity Summary

Hubei virga-like virus 2
Hubei virga-like virus 2 has a +ssRNA genome and is a member of the
family Virgaviridae and was detected in 4 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
3
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
2
|
|
Cypress River & Carberry
|
1
|
|
Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
4
|
Contig Summary
|
Summary Stats for Hubei virga-like virus 2
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
6
|
947
|
290.00
|
99.04
|
100.00
|
96.27
|
aa Identity Summary

Des Moines River virus
Des Moines River virus has a +ssRNA genome and is a member of the
family Tombusviridae and was detected in 4 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
4
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
3
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
1
|
|
Culex tarsalis
|
3
|
Contig Summary
|
Summary Stats for Des Moines River virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
4
|
2361
|
1,070.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Manitoba dicistro-like virus 1*
Manitoba dicistro-like virus 1* has a +ssRNA genome and is a member
of the family Dicistroviridae and was detected in 1 sample(s). See
summary figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
1
|
Contig Summary
|
Summary Stats for Manitoba dicistro-like virus 1*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
7146
|
7,146.00
|
82.61
|
82.61
|
82.61
|
aa Identity Summary

Soybean thrips dicistrovirus
Soybean thrips dicistrovirus has a +ssRNA genome and is a member of
the family Dicistroviridae and was detected in 9 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
3
|
|
2021
|
6
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
2
|
|
Brandon
|
1
|
|
Carberry
|
1
|
|
Newdale
|
1
|
|
Shoal Lake
|
2
|
|
Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
3
|
|
Culex tarsalis
|
5
|
|
Ochlerotatus dorsalis
|
1
|
Contig Summary
|
Summary Stats for Soybean thrips dicistrovirus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
3
|
11
|
9121
|
893.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Yongsan picorna-like virus 2
Yongsan picorna-like virus 2 has a +ssRNA genome and is a member of
the family Iflaviridae and was detected in 3 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
|
2021
|
2
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
2
|
|
Shoal Lake
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
3
|
Contig Summary
|
Summary Stats for Yongsan picorna-like virus 2
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
4
|
9573
|
2,367.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Manitoba tombus-like virus 1*
Manitoba tombus-like virus 1* has a +ssRNA genome and is a member of
the family Tombusviridae and was detected in 5 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
3
|
|
2021
|
2
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
2
|
|
Shoal Lake
|
1
|
|
Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
5
|
Contig Summary
|
Summary Stats for Manitoba tombus-like virus 1*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
5
|
2340
|
1,687.00
|
75.68
|
76.92
|
72.73
|
aa Identity Summary

Culex narnavirus 1
Culex narnavirus 1 has a +ssRNA genome and is a member of the family
Narnaviridae and was detected in 1 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
1
|
Contig Summary
|
Summary Stats for Culex narnavirus 1
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
513
|
513.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Hubei noda-like virus 12
Hubei noda-like virus 12 has a +ssRNA genome and is a member of the
family Nodaviridae and was detected in 2 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
2
|
Locations
|
Location(s) Detected
|
n
|
|
Carberry
|
1
|
|
Virden
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Coquillettidia perturbans
|
1
|
|
Culex tarsalis
|
1
|
Contig Summary
|
Summary Stats for Hubei noda-like virus 12
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
2
|
4762
|
841.00
|
95.83
|
100.00
|
91.67
|
aa Identity Summary

Manitoba mononega-like virus 1*
Manitoba mononega-like virus 1* has a +ssRNA genome and is a member
of the family Negevirus and was detected in 1 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes canadensis
|
1
|
Contig Summary
|
Summary Stats for Manitoba mononega-like virus 1*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
11180
|
11,180.00
|
73.21
|
73.21
|
73.21
|
aa Identity Summary

Bro virus
Bro virus has a +ssRNA genome and is a member of the family Negevirus
and was detected in 1 sample(s). See summary figures and tables
below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes canadensis
|
1
|
Contig Summary
|
Summary Stats for Bro virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
11375
|
11,375.00
|
90.00
|
90.00
|
90.00
|
aa Identity Summary

Manitoba mononega-like virus 2*
Manitoba mononega-like virus 2* has a +ssRNA genome and is a member
of the family Negevirus and was detected in 1 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes canadensis
|
1
|
Contig Summary
|
Summary Stats for Manitoba mononega-like virus 2*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
2477
|
2,477.00
|
75.00
|
75.00
|
75.00
|
aa Identity Summary

Hubei macula-like virus 3
Hubei macula-like virus 3 has a +ssRNA genome and is a member of the
family Tymoviridae and was detected in 5 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
4
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
2
|
|
Shoal Lake
|
2
|
|
Virden & Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
4
|
|
Ochlerotatus dorsalis
|
1
|
Contig Summary
|
Summary Stats for Hubei macula-like virus 3
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
8
|
6059
|
2,954.00
|
96.13
|
100.00
|
92.15
|
aa Identity Summary

Hanko iflavirus 2
Hanko iflavirus 2 has a +ssRNA genome and is a member of the family
Iflaviridae and was detected in 13 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
9
|
|
2021
|
4
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
3
|
|
Cypress River & Carberry
|
1
|
|
Killarney
|
1
|
|
Shoal Lake
|
4
|
|
Souris
|
1
|
|
Virden & Souris
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
11
|
|
Coquillettidia perturbans
|
1
|
|
Ochlerotatus dorsalis
|
1
|
Contig Summary
|
Summary Stats for Hanko iflavirus 2
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
3
|
16
|
9206
|
461.00
|
97.05
|
100.00
|
89.58
|
aa Identity Summary

Black queen cell virus
Black queen cell virus has a +ssRNA genome and is a member of the
family Dicistroviridae and was detected in 1 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Brandon
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
1
|
Contig Summary
|
Summary Stats for Black queen cell virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
2
|
6035
|
2,087.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Manitoba picorna-like virus 1*
Manitoba picorna-like virus 1* has a +ssRNA genome and is a member of
the family Iflaviridae and was detected in 12 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
7
|
|
2021
|
5
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
2
|
|
Brandon
|
2
|
|
Cypress River & Carberry
|
1
|
|
Killarney
|
2
|
|
Newdale
|
1
|
|
Shoal Lake
|
3
|
|
Virden & Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
12
|
Contig Summary
|
Summary Stats for Manitoba picorna-like virus 1*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
20
|
2114
|
573.00
|
81.99
|
84.96
|
73.93
|
aa Identity Summary

Cordoba virus
Cordoba virus has a +ssRNA genome and is a member of the family
Negevirus and was detected in 3 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
3
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Cypress River
|
1
|
|
Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
3
|
Contig Summary
|
Summary Stats for Cordoba virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
14
|
5133
|
610.00
|
97.10
|
100.00
|
93.75
|
aa Identity Summary

Mekrijarvi Negevirus
Mekrijarvi Negevirus has a +ssRNA genome and is a member of the
family Negevirus and was detected in 6 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
2
|
|
2021
|
4
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Boissevain & Killarney
|
1
|
|
Cypress River
|
1
|
|
Shoal Lake
|
1
|
|
Souris
|
1
|
|
Virden & Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
3
|
|
Ochlerotatus dorsalis
|
3
|
Contig Summary
|
Summary Stats for Mekrijarvi Negevirus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
6
|
9873
|
3,125.00
|
94.13
|
100.00
|
90.78
|
aa Identity Summary

Big Cypress virus
Big Cypress virus has a +ssRNA genome and is a member of the family
Negevirus and was detected in 3 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
|
2021
|
2
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
1
|
|
Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
3
|
Contig Summary
|
Summary Stats for Big Cypress virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
3
|
9570
|
2,735.00
|
98.77
|
100.00
|
96.30
|
aa Identity Summary

Manitoba mononega-like virus 3*
Manitoba mononega-like virus 3* has a +ssRNA genome and is a member
of the family Negevirus and was detected in 1 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Multiple
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Ochlerotatus triseriatus
|
1
|
Contig Summary
|
Summary Stats for Manitoba mononega-like virus 3*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
5456
|
5,456.00
|
78.57
|
78.57
|
78.57
|
aa Identity Summary

Manitoba iflavirus 1*
Manitoba iflavirus 1* has a +ssRNA genome and is a member of the
family Iflaviridae and was detected in 10 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
5
|
|
2021
|
5
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
|
Brandon
|
1
|
|
Killarney
|
1
|
|
Newdale
|
1
|
|
Shoal Lake
|
3
|
|
Souris
|
1
|
|
Virden
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
9
|
|
Ochlerotatus dorsalis
|
1
|
Contig Summary
|
Summary Stats for Manitoba iflavirus 1*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
13
|
2435
|
573.00
|
78.42
|
83.54
|
67.08
|
aa Identity Summary

Tiger mosquito bi-segmented tombus-like virus
Tiger mosquito bi-segmented tombus-like virus has a +ssRNA genome and
is a member of the family Tombusviridae and was detected in 1 sample(s).
See summary figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Culex tarsalis
|
1
|
Contig Summary
|
Summary Stats for Tiger mosquito bi-segmented tombus-like virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
2351
|
2,351.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Hubei arthropod virus 1
Hubei arthropod virus 1 has a +ssRNA genome and is a member of the
family Iflaviridae and was detected in 1 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Shoal Lake
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
1
|
Contig Summary
|
Summary Stats for Hubei arthropod virus 1
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
2967
|
2,967.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Thrace picorna-like virus 1
Thrace picorna-like virus 1 has a +ssRNA genome and is a member of
the family Iflaviridae and was detected in 2 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
2
|
Locations
|
Location(s) Detected
|
n
|
|
Cypress River
|
1
|
|
Newdale
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
2
|
Contig Summary
|
Summary Stats for Thrace picorna-like virus 1
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
2
|
1172
|
1,115.00
|
91.62
|
93.65
|
89.58
|
aa Identity Summary

Soybean thrips iflavirus 4
Soybean thrips iflavirus 4 has a +ssRNA genome and is a member of the
family Iflaviridae and was detected in 1 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Coquillettidia perturbans
|
1
|
Contig Summary
|
Summary Stats for Soybean thrips iflavirus 4
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
3835
|
3,835.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Cafluga virus
Cafluga virus has a +ssRNA genome and is a member of the family
Iflaviridae and was detected in 2 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
2
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain & Killarney
|
1
|
|
WPG Insect Contol
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Coquillettidia perturbans
|
1
|
|
Ochlerotatus dorsalis
|
1
|
Contig Summary
|
Summary Stats for Cafluga virus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
2
|
2
|
3426
|
1,395.00
|
99.77
|
100.00
|
99.55
|
aa Identity Summary

Manitoba tymo-like virus 1*
Manitoba tymo-like virus 1* has a +ssRNA genome and is a member of
the family Tymoviridae and was detected in 1 sample(s). See summary
figures and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Boissevain
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
1
|
Contig Summary
|
Summary Stats for Manitoba tymo-like virus 1*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
6302
|
6,302.00
|
66.79
|
66.79
|
66.79
|
aa Identity Summary

Utsjoki negevirus 3
Utsjoki negevirus 3 has a +ssRNA genome and is a member of the family
Negevirus and was detected in 2 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
2
|
Locations
|
Location(s) Detected
|
n
|
|
Shoal Lake
|
1
|
|
Virden & Souris
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
2
|
Contig Summary
|
Summary Stats for Utsjoki negevirus 3
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
2
|
989
|
972.00
|
99.02
|
99.03
|
99.01
|
aa Identity Summary

Inari jingmenvirus
Inari jingmenvirus has a +ssRNA genome and is a member of the family
Flaviviridae and was detected in 1 sample(s). See summary figures and
tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Shoal Lake
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Aedes vexans
|
1
|
Contig Summary
|
Summary Stats for Inari jingmenvirus
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
1267
|
1,267.00
|
100.00
|
100.00
|
100.00
|
aa Identity Summary

Manitoba virgavirus 1*
Manitoba virgavirus 1* has a +ssRNA genome and is a member of the
family Virgaviridae and was detected in 1 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2020
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Shoal Lake
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Ochlerotatus dorsalis
|
1
|
Contig Summary
|
Summary Stats for Manitoba virgavirus 1*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
1
|
1675
|
1,675.00
|
83.83
|
83.83
|
83.83
|
aa Identity Summary

Manitoba narnavirus 1*
Manitoba narnavirus 1* has a +ssRNA genome and is a member of the
family Narnaviridae and was detected in 1 sample(s). See summary figures
and tables below.

Years
|
Year(s) Detected
|
n
|
|
2021
|
1
|
Locations
|
Location(s) Detected
|
n
|
|
Shoal Lake
|
1
|
Mosquito Species
|
Mosquito Hosts
|
n
|
|
Anopheles earlei
|
1
|
Contig Summary
|
Summary Stats for Manitoba narnavirus 1*
|
|
n Species
|
n Contigs
|
Max Contig
|
Min Contig
|
Average aa Id
|
Max aa Id
|
Min aa Id
|
|
1
|
2
|
1760
|
654.00
|
80.59
|
80.89
|
80.29
|
aa Identity Summary

LS0tDQp0aXRsZTogIk1vc3F1aXRvIE1ldGFnZW5vbWljcyBTdW1tYXJ5Ig0KYXV0aG9yOiAiQ29sZSBCYXJpbCINCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgdGhlbWU6IGNvc21vDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICAgIGNvZGVfZm9sZGluZzogc2hvdw0KLS0tDQoNCmBgYHtjc3MgdG9jLWNvbnRlbnQsIGVjaG8gPSBGQUxTRX0NCiNUT0Mgew0KICBsZWZ0OiAyNXB4Ow0KICBtYXJnaW46IDI1cHggMHB4IDI1cHggMHB4Ow0KfQ0KDQoubWFpbi1jb250YWluZXIgew0KICAgIG1hcmdpbi1sZWZ0OiA1MHB4Ow0KfQ0KYGBgDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLCBtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmdzID0gRkFMU0UpDQpgYGANCg0KYGBgez1odG1sfQ0KPHN0eWxlPg0KICAgdGFibGUgew0KICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgb3ZlcmZsb3c6IGF1dG87DQogICB9DQoNCiAgIGJsb2NrcXVvdGUgew0KICAgYmFja2dyb3VuZC1jb2xvcjogIzMzNjM4ZGZmOw0KICAgY29sb3I6d2hpdGU7DQogIH0NCg0KIDwvc3R5bGU+DQpgYGANCg0KIyBMaW5rcyB0byBGaWxlcw0KDQpTb21lIGZpbGVzIGdlbmVyYXRlZCBhcmUgdG9vIGxhcmdlIHRvIHN0b3JlIG9uIEdpdEh1YiAoZS5nLiwgY29udGlnIHNlcXVlbmNlcywgcHVibGljYXRpb24tcXVhbGl0eSBpbWFnZXMpLiBMYXJnZSBmaWxlcyBjYW4gYmUgYWNjZXNzZWQgZnJvbSBEcm9wQm94IGZvbGRlcnMgYmVsb3c6DQoNCltEcm9wYm94IGxpbmsgdG8gcmF3IGFzc2VtYmxpZXMgc2VwYXJhdGVkIGJ5IHNhbXBsZV0oaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vcy9tMTk0YXVrN294bHBud2EvQ29udGlncy56aXA/ZGw9MCkNCg0KW0Ryb3Bib3ggbGluayB0byByYXcgYXNzZW1ibGllcyBjb25jYXRlbmF0ZWQgaW50byBhIC5jc3ZdKGh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3MvcHBlODNsOGxidmR6MjYyL2NvbnRpZ3NfcmF3LnppcD9kbD0wKQ0KDQpbRHJvcGJveCBsaW5rIHRvIHB1YmxpY2F0aW9uIHF1YWxpdHkgZmlndXJlc10oaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2gvMmx3NzR4ZGFwMm9meHRiL0FBQUNUTUlVLWlwdmQwR2dLVkd4dXpqbWE/ZGw9MCkNCg0KUmF3IFJOQSBzZXF1ZW5jaW5nIHJlYWRzIGNhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgTkNCSSBzaG9ydCBzZXF1ZW5jZSByZWFkIGFyY2hpdmUgdW5kZXIgdGhlIFNSQSBhY2Nlc3Npb24gbnVtYmVyIFBSSk5BNzkzMjQ3Lg0KDQoNCiMgUmUtQkxBU1QgMjAyMw0KDQpEdWUgdG8gdGhlIHNpZ25pZmljYW50IGNoYW5nZXMgdG8gR2VuQmFuayB3ZSBhcmUgcmUtQkxBU1RpbmcgcmVzdWx0cy4gVG8gc3BlZWQgdGhpbmdzIHVwLCBJIGFtIGN1cmF0aW5nIGN1c3RvbSBCTEFTVCBkYXRhYmFzZXMgdXNpbmcgc2VxdWVuY2VzIGRvd25sb2FkZWQgZnJvbSBHZW5CYW5rJ3MgTnVjbGVvdGlkZSBkYXRhYmFzZSB1c2luZyBFbnRyZXogUXVlcmllcyB0byBlbGltaW5hdGUgc2VxdWVuY2VzIHRoYXQgYXJlIGV4dHJlbWVseSB1bmxpa2VseSB0byBiZSBwcmVzZW50IGluIG91ciBzYW1wbGVzIHRoYXQgbWFrZSB1cCBhIGxhcmdlIHBvcnRpb24gb2YgdGhlIE51Y2xlb3RpZGUgZGF0YWJhc2UuIEJMQVNUIGlzIGJlaW5nIHJ1biBsb2NhbGx5IHVzaW5nIENMQyBHZW5vbWljcyBXb3JrYmVuY2guIEkgYW0gQkxBU1RpbmcgYnkgdGF4b24gY2F0ZWdvcmllcyAoZS5nLiwgdmlydXNlcywgZnVuZ2ksIHBhcmFzaXRlcykgYXMgd2UgYXJlIGxpbWl0ZWQgYnkgY29tcHV0YXRpb25hbCBhdmFpbGFiaWxpdHkuIEZvciBleGFtcGxlLCBlbGltaW5hdGluZyB0aGUgdG9wIGZldyB2aXJ1c2VzICh1bmxpa2VseSB0byBiZSBmb3VuZCBpbiBtb3NxdWl0b2VzKSBpbiB0aGUgbnVjbGVvdGlkZSBkYXRhYmFzZSByZWR1Y2VzIHRoZSBudW1iZXIgb2Ygc2VxdWVuY2VzIGJ5IDkwJS4gDQoNCiMjIFZpcnVzZXMNCg0KKipFbnRyZXogUXVlcnk6KioNCg0KVmlydXNlcyBbT1JHTl0gTk9UIENvcm9uYXZpcnVzIFtPUkdOXSBOT1QgSHVtYW4gaW1tdW5vZGVmaWNpZW5jeSB2aXJ1cyAxIFtPUkdOXSBOT1QgSW5mbHVlbnphIEEgdmlydXMgW09SR05dIE5PVCBIZXBhY2l2aXJ1cyBDIFtPUkdOXSBOT1QgSGVwYXRpdGlzIEIgdmlydXMgW09SR05dIE5PVCBJbmZsdWVuemEgQiB2aXJ1cyBbT1JHTl0gTk9UIFJvdGF2aXJ1cyBBIFtPUkdOXSBOT1QgTm9yd2FsayB2aXJ1cyBbT1JHTl0gTk9UIFNpbWlhbiBpbW11bm9kZWZpY2llbmN5IHZpcnVzIFtPUkdOXSANCg0KIyMgUmUtQkxBU1QgMjAyMyBTdGVwcw0KDQoxLiBDb25jYXRlbmF0ZSBhbGwgcmVhZCBtYXBwaW5nIGRhdGEgYW5kIGNvbnRpZ3M6IGAwMSAtIE1hcHBpbmdzICYgQ29udGlncy5SYA0KMi4gUmUtQkxBU1QgYWxsIGNvbnRpZyBzZXF1ZW5jZXMgYWdhaW5zdCBsb2NhbCBOQ0JJIHZpcnVzIGJsYXN0IChjdXJhdGVkIHZpYSBhYm92ZSBFbnRyZXogUXVlcnkpIHVzaW5nIENMQw0KMy4gUmVhZCBsb2NhbCBCTEFTVCByZXN1bHRzIGFuZCBmaWx0ZXIgcmVzdWx0czogYDAyIC0gUmVhZCBOdCBMb2NhbCBCTEFTVC5SYA0KNC4gQkxBU1QgYWxsIGNvbnRpZyBzZXF1ZW5jZXMgcGFzc2luZyBmaWx0ZXJzIGF0IE5DQkkgYWdhaW5zdCBhbGwgb3JnYW5pc21zIHRvIGVsaW1pbmF0ZSBmYWxzZSBwb3NpdGl2ZXMgdXNpbmcgQ0xDDQo1LiBSZWFkIEJMQVNUIGF0IE5DQkkgcmVzdWx0cyBhbmQgZmlsdGVyIG91dCBub24tdmlydXMgc2VxdWVuY2VzOiBgMDMgLSBCTEFTVCBhdCBOQ0JJLlJgDQo2LiB0QkxBU1R4IG9uIGNvbnRpZyBzZXF1ZW5jZXMgcGFzc2luZyBmaWx0ZXJzIGZyb20gc3RlcCB1c2luZyBsb2NhbCBkYXRhYmFzZSBvbiBDTEMgdG8gZGV0ZXJtaW5lIGFhIGlkZW50aXRlcw0KNy4gUmVhZCB0QkxBU1R4IHJlc3VsdHMgYW5kIGZpbHRlcjogYDA0IC0gdEJMQVNUeC5SYA0KDQojIE5vbi1WaXJ1cyBTZXF1ZW5jZXMNCg0KTm9uLXZpcnVzIHNlcXVlbmNlcyAoZS5nLiwgRnVuZ2ksIHBhcmFzaXRlcywgYmFjdGVyaWEsIHBsYW50cywgdmVydGVicmF0ZXMpIHdlcmUgY29uc2lkZXJhYmx5IGxvd2VyIGluIG92ZXJhbGwgbnVtYmVyIGFzIHdlbGwgYXMgcXVhbGl0eS4gRnVydGhlcm1vcmUsIGZvciB0aGVzZSByZWFzb25zLCBpdCB3YXMgZGlmZmljdWx0IHRvIGRpc2Nlcm4gc3BlY2llcyBmcm9tIHRoZSByZWNvdmVyZWQgc2VxdWVuY2VzLiBTb21lIG9mIHRoZSByZWFzb25zIGZvciB0aGlzIGlzIHRoYXQgY29tcGFyZWQgdG8gdmlydXNlcyB3aGVyZSBvZnRlbiB3ZSByZWNvdmVyZWQgdGhlIG5lYXIgY29tcGxldGUgZ2Vub21lLCBmb3IgZnVuZ2ksIHBhcmFzaXRlcywgYmFjdGVyaWEsIHBsYW50cyBhbmQgdmVydGVicmF0ZXMgd2UgcmVjb3ZlcmVkIG1vc3RseSByUk5BLCBtaXRvY2hvbmRyaWFsIHNlcXVlbmNlcywgb3IgaW4gdGhlIGNhc2Ugb2YgcGxhbnRzLCBjaGxvcm9wbGFzdCBzZXF1ZW5jZXMuIFRoZXJlZm9yZSwgd2UgZGVjaWRlZCB0byBjb25kdWN0IGFuYWx5c2VzIGZvciBub24tdmlydXMgc2VxdWVuY2VzIHJlY292ZXJlZCBhdCBhIGhpZ2hlciBsZXZlbCAoZS5nLiwgRmFtaWx5LCBHZW51cykgcmF0aGVyIHRoYW4gc3BlY2llcy4gVGhpcyBzdGlsbCBnaXZlcyB1cyBhIGdvb2QgaWRlYSBhYm91dCB3aGF0IG9yZ2FuaXNtcyBhcmUgaGFyYm91cmVkIGJ5IG1vc3F1aXRvZXMuIA0KDQojIE1ldGhvZHMNCg0KIyMgSG9zdCBhbmQgUXVhbGl0eSBGaWx0ZXJpbmcNCg0KQ2hhbiBadWNrZXJiZXJnIElEIE1ldGFnZW5vbWljIFBpcGVsaW5lIHY2LjggKENoYW4gWnVja2VyYmVyZyBCaW9odWI7IENaSUQpLCBhbiBvcGVuLXNvdXJjZWQgY2xvdWQtYmFzZWQgYmlvaW5mb3JtYXRpY3MgcGxhdGZvcm0gKGh0dHBzOi8vY3ppZC5vcmcvKSB3YXMgdXNlZCBmb3IgcXVhbGl0eSBjb250cm9sIGFuZCBob3N0IGZpbHRyYXRpb24gb2YgcmVhZHMgYXMgd2VsbCBhcyBkZSBub3ZvIGFzc2VtYmx5IGFuZCB0YXhvbm9taWMgYmlubmluZyBhcyBkZXNjcmliZWQgYnkgQmF0c29uIGV0IGFsLiwgKDIwMjEpIGFuZCBLYWxhbnRhciBldCBhbC4sICgyMDIwKS4gVGhlIENaSUQgcGlwZWxpbmUgZW1wbG95cyBTVEFSIGFuZCBCb3d0aWUyIHRvIHBlcmZvcm0gaG9zdCBmaWx0cmF0aW9uIChodW1hbiBhbmQgbW9zcXVpdG8pLCBUcmltbW9tYXRpYyBmb3IgYWRhcHRlciB0cmltbWluZywgUHJpY2UgU2VxIGZvciByZW1vdmFsIG9mIGxvdy1xdWFsaXR5IHJlYWRzLCBMWlcgZm9yIHRoZSByZW1vdmFsIG9mIGxvdyBjb21wbGV4aXR5IHJlYWRzIGFuZCBDWklEZGVkdXAgZm9yIGR1cGxpY2F0ZSByZWFkIGlkZW50aWZpY2F0aW9uLg0KDQojIyAqRGUgTm92byogQXNzZW1ibHkNCg0KVGhlIGhvc3QgYW5kIHF1YWxpdHkgZmlsdGVyZWQgcmVhZHMgd2VyZSBhbGxvd2VkIHRvIGNvbnRpbnVlIHRocm91Z2ggdGhlIENaSUQgcGlwZWxpbmUsIHdoaWNoIGludm9sdmVzIGRlIG5vdm8gYXNzZW1ibHkgd2l0aCBTUEFERVMgdXNpbmcgZGVmYXVsdCBzZXR0aW5ncyBhbmQgb25seSB0aGUgYXNzZW1ibHkgbW9kdWxlLiBBZnRlciBhc3NlbWJseSwgcmVhZHMgYXJlIG1hcHBlZCBiYWNrIHRvIGNvbnRpZ3Mgd2l0aCBCb3d0aWUyLiBUaGUgaG9zdCBhbmQgcXVhbGl0eSBmaWx0ZXJlZCByZWFkcyBmcm9tIENaSUQgKHRoZSBCb3d0aWUyIG91dHB1dCkgd2VyZSBkb3dubG9hZGVkIGFuZCBhc3NlbWJsZWQgd2l0aCB0aGUgQ0xDIEdlbm9taWNzIFdvcmtiZW5jaCB2ZXJzaW9uIDIwIGFzc2VtYmxlciB3aXRoIGEgbWluaW11bSBjb250aWcgbGVuZ3RoIG9mIDI1MCBudCwgbWlzbWF0Y2ggY29zdCBvZiAyLCBpbnNlcnRpb24gY29zdCBvZiAzLCBkZWxldGlvbiBjb3N0IG9mIDMsIGxlbmd0aCBmcmFjdGlvbiBvZiAwLjcgYW5kIGEgc2ltaWxhcml0eSBmcmFjdGlvbiBvZiAwLjk1LiBDb250aWdzIHdlcmUgc3ViamVjdCB0byBCTEFTVG4gYW5kIHRCTEFTVHggc2VhcmNoZXMgb24gYSBjdXN0b20gTkNCSSB2aXJ1c2VzIGRhdGFiYXNlIHVzaW5nIHRoZSBhYm92ZSBFbnRyZXogUXVlcnkgYW5kIHRoZSBOQ0JJIG50IGRhdGFiYXNlLiBUaGUgQkxBU1QgcmVzdWx0cyB3ZXJlIHZlcnkgc2ltaWxhciBiZXR3ZWVuIENaSUQgYW5kIENMQywgdGh1cyB3ZSBvcHRlZCB0byB1c2UgQ0xDIEdlbm9taWNzIFdvcmtiZW5jaCB2ZXJzaW9uIDIwIGZvciBzdWJzZXF1ZW50IGFuYWx5c2VzLg0KDQojIyBCTEFTVA0KDQpBc3NlbWJsZWQgY29udGlncyB3ZXJlIHN1YmplY3QgdG8gQkxBU1RuIHNlYXJjaGVzIG9uIHRoZSBOQ0JJIG5vbi1yZWR1bmRhbnQgbnVjbGVvdGlkZSBkYXRhYmFzZSwgYW5kIGNvbnRpZ3Mgd2VyZSBhc3NpZ25lZCB0byB0YXhhIGJhc2VkIG9uIEJMQVNUIHJlc3VsdHMuIFBvc2l0aXZlIGNvbnRpZ3MgZnJvbSBCTEFTVG4gd2VyZSBzdWJqZWN0IHRvIHRCTEFTVHggdG8gaWRlbnRpZnkgYW1pbm8gYWNpZCBpZGVudGl0aWVzLiBXZSB3ZXJlIGxvb2tpbmcgZm9yIG5vbi1tb3NxdWl0byBzZXF1ZW5jZXMgb2YgdmlyYWwsIGJhY3RlcmlhbCwgcGFyYXNpdGljLCBmdW5nYWwgYW5kIHBsYW50IG9yaWdpbiBhbmQgZGlzY2FyZGVkIHNlcXVlbmNlcyB0aGF0IHdlcmUgb2YgbW9zcXVpdG8gb3JpZ2luLg0KDQpUbyBiZWdpbiwgQkxBU1RuIHNlYXJjaCByZXN1bHRzIHdlcmUgZmlsdGVyZWQgYnkgRS12YWx1ZSAo4omkMXggMTA8c3VwPi0xMDA8L3N1cD4pIGFuZCBjb250aWcgbGVuZ3RoICjiiaUyNTApLiBDb250aWdzIHdpdGggYSBtYXRjaCBsZW5ndGggb2Yg4omlMjUwIG50LCDiiaU5MCUgZm9yIGJvdGggbnQgYW5kIGFhIHNlcXVlbmNlIHNpbWlsYXJpdHkgd2VyZSBjbGFzc2lmaWVkIGFzIGhpdHMuIENvdmVyYWdlIGRlcHRoIHdhcyBhbmFseXplZCBvbiBhIHBlci1zZXF1ZW5jZSBiYXNpczogZm9yIHZpcnVzZXMsIHdlIHVzZWQgYSBtaW5pbXVtIHRocmVzaG9sZCBvZiAxMFggY292ZXJhZ2UgZGVwdGgsIGFuZCB3ZSB3ZXJlIGxlc3Mgc3RyaWN0IGZvciBwcm90b3pvYW4sIGZ1bmdhbCwgYmFjdGVyaWFsLCBwbGFudCBhbmQgY2hvcmRhdGUgY292ZXJhZ2UuIEZvciB2aXJ1cyBoaXRzLCBjb250aWdzIG1lZXRpbmcgdGhlc2UgY3JpdGVyaWEgd2VyZSBzdWJqZWN0IHRvIHRCTEFTVHggc2VhcmNoZXMgdG8gaWRlbnRpZnkgYW1pbm8gYWNpZCBpZGVudGl0aWVzLg0KDQpDb250aWdzIG9mIHZpcmFsIG9yaWdpbiB3aXRoIGEgcGVyY2VudCBudCBpZGVudGl0eSA8ODUlIHdlcmUgZmxhZ2dlZCBhcyBwb3RlbnRpYWxseSBub3ZlbCB2aXJ1c2VzLiBXaGlsZSB0aGUgSUNUViBzZXRzIHNwZWNpZmljIHN0YW5kYXJkcyBmb3IgZGlmZmVyZW50IHZpcmFsIHRheGEgZm9yIHBlcmNlbnQgaWRlbnRpdHkgdG8gY2xhaW0gYSBub3ZlbCB2aXJ1cywgbWFueSBvZiB0aGUgdmlydXNlcyB3ZSByZWNvdmVyZWQgYXJlIHVuY2xhc3NpZmllZCBiZXlvbmQgdGhlIG9yZGVyIG9yIGZhbWlseSBjbGFzc2lmaWNhdGlvbiwgd2hpY2ggY2FuIG1ha2Ugc2VsZWN0aW5nIGFuIGlkZW50aXR5IHRocmVzaG9sZCBkaWZmaWN1bHQuIFRoZXJlZm9yZSwgd2Ugc2VsZWN0ZWQg4omkODUlIGFzIHRoZSBjdXQtb2ZmIGJlY2F1c2UgS2FsYW50YXIgZXQgYWwuLCAoMjAyMCkgc3VnZ2VzdHMgdGhhdCA8OTAlIG50IGlkZW50aXR5IGlzIGEgZ29vZCBnZW5lcmFsIHRocmVzaG9sZCBhbmQgd2Ugb3B0ZWQgdG8gYmUgbW9yZSBjb25zZXJ2YXRpdmUgaW4gb3VyIGFzc2lnbm1lbnRzIG9mIG5vdmVsIHZpcnVzZXMuDQoNCiMgTGlicmFyaWVzDQoNCmBgYHtyLCBsb2FkX2xpYnJhcmllcywgbWVzc2FnZSA9IEZBTFNFLCB3YXJuaW5nID0gRkFMU0V9DQpyZXF1aXJlKHBhY21hbikNCnBhY21hbjo6cF9sb2FkKHRpZHl2ZXJzZSwgamFuaXRvciwgaGVyZSwgRFQsIGd0LCBwaHlsb3Rvb2xzLCBhc3NlcnRyLCByZWFkeGwsIHBhdGNod29yaywgcmVzaGFwZTIsIGdndGV4dCwgb3Blbnhsc3gsIGdyaWQsIHRpZmYpDQpgYGANCg0KIyBMb2FkIERhdGENCg0KYGBge3IsIGxvYWRfZGF0YSwgbWVzc2FnZSA9IEZBTFNFLCB3YXJuaW5nID0gRkFMU0V9DQp2aXJ1c19tYXN0ZXJfMjAyMyA8LSByZWFkX2NzdihoZXJlKCJEYXRhL3RibGFzdHhfbWFzdGVyLmNzdiIpKQ0KYGBgDQoNCiMgU2VxdWVuY2luZyBTdW1tYXJ5IA0KDQpgYGB7ciwgc2VxLXN1bW1hcnksIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFfQ0KIyBSZWFkIGNvdW50ICYgY29udGlncw0KdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICBtdXRhdGUocmVhZHNfbG9nMTAgPSBsb2cxMCh0b3RhbF9yZWFkX2NvdW50KSkgJT4lIA0KICBkcm9wX25hKGdlbm9tZSkgJT4lIA0KICBnZ3Bsb3QoYWVzKHggPSBjb250aWdfbGVuZ3RoLCB5ID0gcmVhZHNfbG9nMTApKSArDQogIGdlb21fcG9pbnQoYWVzKGNvbG91ciA9IGdlbm9tZSkpICsNCiAgc2NhbGVfY29sb3VyX3ZpcmlkaXNfZCgiR2Vub21lIikgKw0KICB0aGVtZV9idygpICsNCiAgbGFicyh4ID0gIkNvbnRpZyBMZW5ndGggKG50KSIsDQogICAgICAgeSA9ICJSZWFkcyAoTG9nIDEwKSIpDQoNCiMgUmVhZCBjb3VudCAmIGNvbnRpZ3MgKG1vc3F1aXRvIHNwZWNpZXMpDQoNCnZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgbXV0YXRlKHJlYWRzX2xvZzEwID0gbG9nMTAodG90YWxfcmVhZF9jb3VudCkpICU+JSANCiAgZHJvcF9uYShnZW5vbWUpICU+JSANCiAgZ2dwbG90KGFlcyh4ID0gY29udGlnX2xlbmd0aCwgeSA9IHJlYWRzX2xvZzEwKSkgKw0KICBnZW9tX3BvaW50KGFlcyhjb2xvdXIgPSBtb3NxdWl0b19zcGVjaWVzKSkgKw0KICBzY2FsZV9jb2xvdXJfdmlyaWRpc19kKCJTcGVjaWVzIikgKw0KICB0aGVtZV9idygpICsNCiAgbGFicyh4ID0gIkNvbnRpZyBMZW5ndGggKG50KSIsDQogICAgICAgeSA9ICJSZWFkcyAoTG9nIDEwKSIpDQoNCiMgQ29udGlnIGxlbmd0aCBhbmQgY292ZXJhZ2UNCnZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgbXV0YXRlKGNvdmVyYWdlX2xvZzEwID0gbG9nMTAoY292ZXJhZ2UpKSAlPiUgDQogIGdncGxvdChhZXMoeCA9IGNvbnRpZ19sZW5ndGgsIHkgPSBjb3ZlcmFnZV9sb2cxMCkpICsNCiAgZ2VvbV9wb2ludChhZXMoY29sb3VyID0gZ2Vub21lKSkgKw0KICBzY2FsZV9jb2xvdXJfdmlyaWRpc19kKCkgKw0KICB0aGVtZV9idygpICsNCiAgICBsYWJzKHggPSAiQ29udGlnIExlbmd0aCAobnQpIiwNCiAgICAgICB5ID0gIkNvdmVyYWdlIChMb2cgMTApIikNCg0KIyBDb3ZlcmFnZSByZWFkcw0KDQp2aXJ1c19tYXN0ZXJfMjAyMyAlPiUgDQogIG11dGF0ZShjb3ZlcmFnZV9sb2cxMCA9IGxvZzEwKGNvdmVyYWdlKSkgJT4lIA0KICBtdXRhdGUocmVhZHNfbG9nMTAgPSBsb2cxMCh0b3RhbF9yZWFkX2NvdW50KSkgJT4lIA0KICBnZ3Bsb3QoYWVzKHggPSBjb3ZlcmFnZV9sb2cxMCwgeSA9IHJlYWRzX2xvZzEwKSkgKw0KICBnZW9tX3BvaW50KGFlcyhjb2xvdXIgPSBnZW5vbWUpKSArDQogIHNjYWxlX2NvbG91cl92aXJpZGlzX2QoIkdlbm9tZSIpICsNCiAgdGhlbWVfYncoKSArDQogIGxhYnMoeCA9ICJDb3ZlcmFnZSBEZXB0aCAoTG9nIDEwKSIsDQogICAgICAgeSA9ICJSZWFkcyAoTG9nIDEwKSIpDQoNCiMgQ29udGlnIExlbmd0aCBhbmQgJSBJRA0KdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICBnZ3Bsb3QoYWVzKHggPSBjb250aWdfbGVuZ3RoLCB5ID0gZ3JlYXRlc3RfaWRlbnRpdHlfcGVyY2VudCkpICsNCiAgZ2VvbV9wb2ludChhZXMoY29sb3VyID0gZ2Vub21lKSkgKw0KICBzY2FsZV9jb2xvdXJfdmlyaWRpc19kKCkgKw0KICB0aGVtZV9idygpICsNCiAgbGFicyh4ID0gIkNvbnRpZyBMZW5ndGggKG50KSIsDQogICAgICAgeSA9ICJQZXJjZW50IGFhIElkZW50aXR5IikNCmBgYA0KDQojIEJMQVNUIFN1bW1hcnkNCg0KYGBge3IsIHJlYWRfY29udGlnX3N1bW1hcnksIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFfQ0KbGlicmFyeV9zdW1tYXJ5IDwtIHZpcnVzX21hc3Rlcl8yMDIzICU+JQ0KICBncm91cF9ieShtb3NxdWl0b19zcGVjaWVzLCBzYW1wbGVfbnVtYmVyKSAlPiUNCiAgc3VtbWFyaXNlKG4gPSBuX2Rpc3RpbmN0KG1vc3F1aXRvX3NwZWNpZXMpKSAlPiUNCiAgZ3JvdXBfYnkobW9zcXVpdG9fc3BlY2llcykgJT4lDQogIHN1bW1hcmlzZShuID0gbigpKSAlPiUNCiAgYWRvcm5fdG90YWxzKCkNCg0KeWVhcnMgPC0gdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICBncm91cF9ieShjb2xsZWN0aW9uX3llYXIsIHZpcnVzX25hbWUpICU+JSANCiAgc3VtbWFyaXNlKGNvdW50ID0gbl9kaXN0aW5jdCh2aXJ1c19uYW1lLCBjb2xsZWN0aW9uX3llYXIpKSAlPiUgDQogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSBjb2xsZWN0aW9uX3llYXIsIHZhbHVlc19mcm9tID0gY291bnQsIHZhbHVlc19maWxsID0gMCkNCg0KdmlydXNfbGluZWFnZSA8LSB2aXJ1c19tYXN0ZXJfMjAyMyAlPiUgDQogIGdyb3VwX2J5KHZpcnVzX25hbWUsIHZpcmFsX2ZhbWlseSwgZ2Vub21lKSAlPiUgDQogIHN1bW1hcmlzZShuID0gbl9kaXN0aW5jdCh2aXJ1c19uYW1lLCB2aXJhbF9mYW1pbHksIGdlbm9tZSkpICU+JSANCiAgc2VsZWN0KC0ibiIpDQoNCnZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgZ3JvdXBfYnkodmlydXNfbmFtZSkgJT4lIA0KICBzdW1tYXJpc2Uobl9jb250aWdzID0gbigpLA0KICAgICAgICAgICAgbWVhbl9jb3YgPSBtZWFuKGNvdmVyYWdlKSwNCiAgICAgICAgICAgIG1pbl9jb3YgPSBtaW4oY292ZXJhZ2UpLA0KICAgICAgICAgICAgbWF4X2NvdiA9IG1heChjb3ZlcmFnZSksDQogICAgICAgICAgICBtZWFuX3BpZCA9IG1lYW4oZ3JlYXRlc3RfaWRlbnRpdHlfcGVyY2VudCksDQogICAgICAgICAgICBtZWRfcGlkID0gbWVkaWFuKGdyZWF0ZXN0X2lkZW50aXR5X3BlcmNlbnQpLA0KICAgICAgICAgICAgbWluX3BpZCA9IG1pbihncmVhdGVzdF9pZGVudGl0eV9wZXJjZW50KSwNCiAgICAgICAgICAgIG1heF9waWQgPSBtYXgoZ3JlYXRlc3RfaWRlbnRpdHlfcGVyY2VudCksDQogICAgICAgICAgICB0b3RhbF9yZWFkcyA9IHN1bSh0b3RhbF9yZWFkX2NvdW50KSwNCiAgICAgICAgICAgIGxvbmdlc3RfY29udGlnID0gbWF4KGNvbnRpZ19sZW5ndGgpKSAlPiUgDQogIGxlZnRfam9pbih2aXJ1c19saW5lYWdlLCBieSA9ICJ2aXJ1c19uYW1lIikgJT4lIA0KICBncm91cF9ieShnZW5vbWUsIHZpcmFsX2ZhbWlseSkgJT4lIA0KICBhcnJhbmdlKGdlbm9tZSwgdmlyYWxfZmFtaWx5KSAlPiUgDQogIHJlbG9jYXRlKHRvdGFsX3JlYWRzLCAuYWZ0ZXIgPSAibl9jb250aWdzIikgJT4lIA0KICByZWxvY2F0ZShsb25nZXN0X2NvbnRpZywgLmFmdGVyID0gIm5fY29udGlncyIpICU+JSANCiAgbXV0YXRlKGFjcm9zcyguY29scyA9ICJ2aXJ1c19uYW1lIiwNCiAgICAgICAgICAgICAgICB+Y2FzZV93aGVuKGdyZXBsKCJNYW5pdG9iYSIsIHZpcnVzX25hbWUpICYgIWdyZXBsKCJNYW5pdG9iYSB2aXJ1cyIsIHZpcnVzX25hbWUpIH4gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3RlMCguLCAiKiIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IC4pKSkgJT4lIA0KICBndCgpICU+JSANCiAgZm10X251bWJlcihjb2x1bW5zID0gbWVhbl9jb3Y6bWF4X3BpZCwNCiAgICAgICAgICAgICBkZWNpbWFscyA9IDIpICU+JSANCiAgZm10X251bWJlcihjb2x1bW5zID0gdG90YWxfcmVhZHMsDQogICAgICAgICAgICAgc2VwX21hcmsgPSAiLCIsDQogICAgICAgICAgICAgZGVjaW1hbHMgPSAwKSAlPiUgDQogIHRhYl9zcGFubmVyKGxhYmVsID0gIkNvdmVyYWdlIERlcHRoIiwgY29sdW1ucyA9IGMobWVhbl9jb3YsIG1pbl9jb3YsIG1heF9jb3YpKSAlPiUgDQogIHRhYl9zcGFubmVyKGxhYmVsID0gImFhIFBlcmNlbnQgSWRlbnRpdHkiLCBjb2x1bW5zID0gYyhtZWFuX3BpZCwgbWluX3BpZCwgbWF4X3BpZCwgbWVkX3BpZCkpICU+JSANCiAgY29sc19sYWJlbCgNCiAgICBuX2NvbnRpZ3MgPSAiQ29udGlncyIsDQogICAgbG9uZ2VzdF9jb250aWcgPSAiTG9uZ2VzdCBDb250aWcgKG50KSIsDQogICAgdG90YWxfcmVhZHMgPSAiUmVhZHMiLA0KICAgIG1lYW5fY292ID0gIk1lYW4iLCBtaW5fY292ID0gIk1pbiIsIG1heF9jb3YgPSAiTWF4IiwNCiAgICBtZWFuX3BpZCA9ICJNZWFuIiwgbWluX3BpZCA9ICJNaW4iLCBtYXhfcGlkID0gIk1heCIsIG1lZF9waWQgPSAiTWVkaWFuIiwNCiAgICB2aXJ1c19uYW1lID0gIlZpcnVzIikgJT4lIA0KICB0YWJfc3R5bGUoDQogICAgc3R5bGUgPSBsaXN0KGNlbGxfZmlsbChjb2xvciA9ICJncmV5IiksDQogICAgICAgICAgICAgICAgIGNlbGxfdGV4dCh3ZWlnaHQgPSAiYm9sZCIpKSwNCiAgICBsb2NhdGlvbnMgPSBjZWxsc19yb3dfZ3JvdXBzKGdyb3VwcyA9IGV2ZXJ5dGhpbmcoKSkNCiAgKSAlPiUgDQogIHRhYl9zdHlsZSgNCiAgICBzdHlsZSA9IGNlbGxfYm9yZGVycygNCiAgICAgIHNpZGVzID0gImxlZnQiLA0KICAgICAgd2VpZ2h0ID0gcHgoMiksDQogICAgICBjb2xvciA9ICJncmV5IiksDQogICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgIGNvbHVtbnMgPSBjKG1lYW5fY292LCBtZWFuX3BpZCwgIm5fY29udGlncyIpDQogICAgKQ0KICApICU+JSANCiAgZGF0YV9jb2xvcigNCiAgICBjb2x1bW5zID0gbWVhbl9waWQ6bWF4X3BpZCwNCiAgICBwYWxldHRlID0gInZpcmlkaXMiDQogICAgDQogICkgJT4lIA0KICB0YWJfZm9vdG5vdGUoIiogUHV0YXRpdmVseSBub3ZlbCB2aXJ1cy4iKQ0KYGBgDQoNCiMgVmlydXMgRGV0ZWN0aW9ucyBieSBTcGVjaWVzDQoNCmBgYHtyfQ0KdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICBncm91cF9ieShtb3NxdWl0b19zcGVjaWVzLCB2aXJ1c19uYW1lKSAlPiUgDQogIHN1bW1hcmlzZShjb3VudCA9IG5fZGlzdGluY3QodmlydXNfbmFtZSwgc2FtcGxlX251bWJlcikpICU+JSANCiAgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbSA9IG1vc3F1aXRvX3NwZWNpZXMsIHZhbHVlc19mcm9tID0gY291bnQsIHZhbHVlc19maWxsID0gMCkgJT4lIA0KICBtdXRhdGUoIkFlZGVzIGNhbmFkZW5zaXMgXG4gVG90YWw6IDEiID0gKGBBZWRlcyBjYW5hZGVuc2lzYCAvIDEpICogMTAwLA0KICAgICAgICAgIkFlZGVzIHZleGFucyBcbiBUb3RhbDogMTkiID0gKGBBZWRlcyB2ZXhhbnNgIC8gMTkpICogMTAwLA0KICAgICAgICAgIkFub3BoZWxlcyBlYXJsZWkgXG4gVG90YWw6IDEiID0gKGBBbm9waGVsZXMgZWFybGVpYCAvIDEpICogMTAwLA0KICAgICAgICAgIkNvcXVpbGxldHRpZGlhIHBlcnR1cmJhbnMgXG4gVG90YWw6IDYiID0gKGBDb3F1aWxsZXR0aWRpYSBwZXJ0dXJiYW5zYCAvIDYpICogMTAwLA0KICAgICAgICAgIkN1bGV4IHRhcnNhbGlzIFxuIFRvdGFsOiAxMSIgPSAoYEN1bGV4IHRhcnNhbGlzYCAvIDExKSAqIDEwMCwNCiAgICAgICAgICJPY2hsZXJvdGF0dXMgZG9yc2FsaXMgXG4gVG90YWw6IDUiID0gKGBPY2hsZXJvdGF0dXMgZG9yc2FsaXNgIC8gNSkgKiAxMDAsDQogICAgICAgICAiT2NobGVyb3RhdHVzIGZsYXZlc2NlbnMgXG4gVG90YWw6IDEiID0gKGBPY2hsZXJvdGF0dXMgZmxhdmVzY2Vuc2AgLyAxKSAqIDEwMCwNCiAgICAgICAgICJPY2hsZXJvdGF0dXMgdHJpc2VyaWF0dXMgXG4gVG90YWw6IDEiID0gKGBPY2hsZXJvdGF0dXMgdHJpc2VyaWF0dXNgIC8gMSkgKiAxMDAsDQogICkgJT4lIHNlbGVjdCgtYEFlZGVzIGNhbmFkZW5zaXNgOi1gT2NobGVyb3RhdHVzIHRyaXNlcmlhdHVzYCkgJT4lIA0KICBsZWZ0X2pvaW4odmlydXNfbGluZWFnZSwgYnkgPSAidmlydXNfbmFtZSIpICU+JSANCiAgIGxlZnRfam9pbih5ZWFycywgYnkgPSAidmlydXNfbmFtZSIpICU+JSANCiAgIHJlbG9jYXRlKCIyMDIwIiwgLmFmdGVyID0gInZpcnVzX25hbWUiKSAlPiUgcmVsb2NhdGUoIjIwMjEiLCAuYWZ0ZXIgPSAiMjAyMCIpICU+JSANCiAgIG11dGF0ZShhY3Jvc3MoLmNvbHMgPSBjKCIyMDIwIiwgIjIwMjEiKSwNCiAgICAgICAgICAgICAgICAgfmNhc2Vfd2hlbiguID09ICIxIiB+IFRSVUUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiA9PSAiMCIgfiBGQUxTRSkpKSAlPiUgDQogICBtdXRhdGUoYWNyb3NzKC5jb2xzID0gInZpcnVzX25hbWUiLA0KICAgICAgICAgICAgICAgICB+Y2FzZV93aGVuKGdyZXBsKCJNYW5pdG9iYSIsIHZpcnVzX25hbWUpICYgIWdyZXBsKCJNYW5pdG9iYSB2aXJ1cyIsIHZpcnVzX25hbWUpIH4gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXN0ZTAoLiwgIioiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gLikpKSAlPiUgDQogIGdyb3VwX2J5KGdlbm9tZSwgdmlyYWxfZmFtaWx5KSAlPiUgDQogIGFycmFuZ2UoZ2Vub21lLCB2aXJhbF9mYW1pbHkpICU+JSANCiAgZ3QoKSAlPiUgDQogIGZtdF9udW1iZXIoY29sdW1ucyA9ICJBZWRlcyBjYW5hZGVuc2lzIFxuIFRvdGFsOiAxIjoiT2NobGVyb3RhdHVzIHRyaXNlcmlhdHVzIFxuIFRvdGFsOiAxIiwNCiAgICAgICAgICAgICBkZWNpbWFscyA9IDIpICU+JSANCiAgdGFiX3NwYW5uZXIobGFiZWwgPSAiUGVyY2VudCBvZiBMaWJyYXJpZXMgRGV0ZWN0ZWQgYnkgU3BlY2llcyIsIA0KICAgICAgICAgICAgICBjb2x1bW5zID0gYygiQWVkZXMgY2FuYWRlbnNpcyBcbiBUb3RhbDogMSI6Ik9jaGxlcm90YXR1cyB0cmlzZXJpYXR1cyBcbiBUb3RhbDogMSIpKSAlPiUgDQogICB0YWJfc3Bhbm5lcihsYWJlbCA9IGh0bWwoIlllYXJzIERldGVjdGVkIiksDQogICAgICAgICAgICAgICBjb2x1bW5zID0gYygiMjAyMCI6IjIwMjEiKSkgJT4lIA0KICBjb2xzX2xhYmVsKA0KICAgICJBZWRlcyBjYW5hZGVuc2lzIFxuIFRvdGFsOiAxIiA9IGh0bWwoIjxlbT5BZWRlcyBjYW5hZGVuc2lzPC9lbT4gPGJyPiBUb3RhbDogMSIpLA0KICAgICJBZWRlcyB2ZXhhbnMgXG4gVG90YWw6IDE5IiA9IGh0bWwoIjxlbT5BZWRlcyB2ZXhhbnM8L2VtPiA8YnI+IFRvdGFsOiAxOSIpLA0KICAgICJBbm9waGVsZXMgZWFybGVpIFxuIFRvdGFsOiAxIiA9IGh0bWwoIjxlbT5Bbm9waGVsZXMgZWFybGVpPC9lbT4gPGJyPiBUb3RhbDogMSIpLA0KICAgICJDb3F1aWxsZXR0aWRpYSBwZXJ0dXJiYW5zIFxuIFRvdGFsOiA2IiA9IGh0bWwoIjxlbT5Db3F1aWxsZXR0aWRpYSBwZXJ0dXJiYW5zPC9lbT4gPGJyPiBUb3RhbDogNiIpLA0KICAgICJDdWxleCB0YXJzYWxpcyBcbiBUb3RhbDogMTEiID0gaHRtbCgiPGVtPkN1bGV4IHRhcnNhbGlzPC9lbT4gPGJyPiBUb3RhbDogMTEiKSwNCiAgICAiT2NobGVyb3RhdHVzIGRvcnNhbGlzIFxuIFRvdGFsOiA1IiA9IGh0bWwoIjxlbT5PY2hsZXJvdGF0dXMgZG9yc2FsaXM8L2VtPiA8YnI+IFRvdGFsOiA1IiksDQogICAgIk9jaGxlcm90YXR1cyBmbGF2ZXNjZW5zIFxuIFRvdGFsOiAxIiA9IGh0bWwoIjxlbT5PY2hsZXJvdGF0dXMgZmxhdmVzY2VuczwvZW0+IDxicj4gVG90YWw6IDEiKSwNCiAgICAiT2NobGVyb3RhdHVzIHRyaXNlcmlhdHVzIFxuIFRvdGFsOiAxIiA9IGh0bWwoIjxlbT5PY2hsZXJvdGF0dXMgdHJpc2VyaWF0dXM8L2VtPiA8YnI+IFRvdGFsOiAxIiksDQogICAgdmlydXNfbmFtZSA9ICJWaXJ1cyIpICU+JSANCiAgIGNvbHNfYWxpZ24oYWxpZ24gPSAiY2VudGVyIiwNCiAgICAgICAgICAgICAgY29sdW1ucyA9ICIyMDIwIjoiT2NobGVyb3RhdHVzIHRyaXNlcmlhdHVzIFxuIFRvdGFsOiAxIikgJT4lIA0KICAgdGFiX3N0eWxlKA0KICAgICBzdHlsZSA9IGxpc3QoY2VsbF9maWxsKGNvbG9yID0gImdyZXkiKSwNCiAgICAgICAgICAgICAgICAgIGNlbGxfdGV4dCh3ZWlnaHQgPSAiYm9sZCIpKSwNCiAgICAgbG9jYXRpb25zID0gY2VsbHNfcm93X2dyb3Vwcyhncm91cHMgPSBldmVyeXRoaW5nKCkpKSAlPiUgDQogICBkYXRhX2NvbG9yKGNvbHVtbnMgPSBgQWVkZXMgY2FuYWRlbnNpcyBcbiBUb3RhbDogMWA6bGFzdF9jb2woKSwNCiAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJ2aXJpZGlzIiwgDQogICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICJyb3ciKSAlPiUgDQogICB0YWJfc3R5bGUoDQogICAgIHN0eWxlID0gY2VsbF9ib3JkZXJzKA0KICAgICAgIHNpZGVzID0gImxlZnQiLA0KICAgICAgIHdlaWdodCA9IHB4KDIpLA0KICAgICAgIGNvbG9yID0gImJsYWNrIiksDQogICAgIGxvY2F0aW9ucyA9IGNlbGxzX2JvZHkoDQogICAgICAgY29sdW1ucyA9IGMoIkFlZGVzIGNhbmFkZW5zaXMgXG4gVG90YWw6IDEiKSkpICU+JSANCiAgdGFiX2Zvb3Rub3RlKCIqIFB1dGF0aXZlbHkgbm92ZWwgdmlydXMiKSAlPiUgDQogIHRhYl9vcHRpb25zKC4sIGNvbnRhaW5lci53aWR0aCA9IDE1MDApDQpgYGANCg0KIyBWaXJhbCBGYW1pbGllcw0KDQpgYGB7ciwgdmlyYWwtZmFtaWx5LCBtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmcgPSBGQUxTRX0NCnZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgZGlzdGluY3QodmlydXNfbmFtZSwgdmlyYWxfZmFtaWx5LCAua2VlcF9hbGwgPSBUUlVFKSAlPiUgDQogIGdyb3VwX2J5KGdlbm9tZSwgdmlyYWxfZmFtaWx5KSAlPiUgDQogIHN1bW1hcmlzZShuID0gbigpKSAlPiUgDQogIGFycmFuZ2UoZ2Vub21lLCBuKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gZmN0X2lub3JkZXIodmlyYWxfZmFtaWx5KSwgeSA9IG4pKSArDQogIGdlb21fY29sKGFlcyhmaWxsID0gZ2Vub21lKSkgKw0KICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgiR2Vub21lIikgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygwLCAxNCksIGJyZWFrcyA9IGMoMCwgMiwgNCwgNiwgOCwgMTAsIDEyLCAxNCksIGV4cGFuZCA9IGMoMCwwKSkgKw0KICBjb29yZF9mbGlwKCkgKyANCiAgdGhlbWVfYncoKSArDQogIGxhYnMoeCA9ICJWaXJhbCBGYW1pbHkiLA0KICAgICAgIHkgPSAiTnVtYmVyIG9mIERpc3RpbmN0IFZpcnVzZXMgRGV0ZWN0ZWQiKQ0KDQoNCg0KdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICBmaWx0ZXIobm92ZWxfZmxhZyA9PSAiTm90IE5vdmVsIikgJT4lIA0KICBkaXN0aW5jdCh2aXJ1c19uYW1lLCB2aXJhbF9mYW1pbHksIC5rZWVwX2FsbCA9IFRSVUUpICU+JSANCiAgZ3JvdXBfYnkoZ2Vub21lLCB2aXJhbF9mYW1pbHkpICU+JSANCiAgc3VtbWFyaXNlKG4gPSBuKCkpICU+JSANCiAgYXJyYW5nZShnZW5vbWUsIG4pICU+JQ0KICBnZ3Bsb3QoYWVzKHggPSBmY3RfaW5vcmRlcih2aXJhbF9mYW1pbHkpLCB5ID0gbikpICsNCiAgZ2VvbV9jb2woYWVzKGZpbGwgPSBnZW5vbWUpKSArDQogIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCJHZW5vbWUiKSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKDAsIDEyKSwgYnJlYWtzID0gYygwLCAyLCA0LCA2LCA4LCAxMCwgMTIpLCBleHBhbmQgPSBjKDAsMCkpICsNCiAgY29vcmRfZmxpcCgpICsgDQogIHRoZW1lX2J3KCkgKw0KICBsYWJzKHggPSAiVmlyYWwgRmFtaWx5IiwNCiAgICAgICB5ID0gIk51bWJlciBvZiBEaXN0aW5jdCBWaXJ1c2VzIERldGVjdGVkIikNCg0KDQp2aXJ1c19tYXN0ZXJfMjAyMyAlPiUgDQogIGZpbHRlcihub3ZlbF9mbGFnICE9ICJOb3QgTm92ZWwiKSAlPiUgDQogIGRpc3RpbmN0KHZpcnVzX25hbWUsIHZpcmFsX2ZhbWlseSwgLmtlZXBfYWxsID0gVFJVRSkgJT4lIA0KICBncm91cF9ieShnZW5vbWUsIHZpcmFsX2ZhbWlseSkgJT4lIA0KICBzdW1tYXJpc2UobiA9IG4oKSkgJT4lIA0KICBhcnJhbmdlKGdlbm9tZSwgbikgJT4lDQogIGdncGxvdChhZXMoeCA9IGZjdF9pbm9yZGVyKHZpcmFsX2ZhbWlseSksIHkgPSBuKSkgKw0KICBnZW9tX2NvbChhZXMoZmlsbCA9IGdlbm9tZSkpICsNCiAgc2NhbGVfZmlsbF92aXJpZGlzX2QoIkdlbm9tZSIpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgNCksIGJyZWFrcyA9IGMoMCwgMSwgMiwgMywgNCksIGV4cGFuZCA9IGMoMCwwKSkgKw0KICBjb29yZF9mbGlwKCkgKyANCiAgdGhlbWVfYncoKSArDQogIGxhYnMoeCA9ICJWaXJhbCBGYW1pbHkiLA0KICAgICAgIHkgPSAiTnVtYmVyIG9mIERpc3RpbmN0IFZpcnVzZXMgRGV0ZWN0ZWQiKQ0KDQoNCiANCg0KdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICBkaXN0aW5jdCh2aXJ1c19uYW1lLCB2aXJhbF9mYW1pbHksIC5rZWVwX2FsbCA9IFRSVUUpICU+JSANCiAgZ3JvdXBfYnkoZ2Vub21lLCB2aXJhbF9mYW1pbHkpICU+JSANCiAgc3VtbWFyaXNlKG4gPSBuKCkpICU+JSANCiAgYXJyYW5nZShnZW5vbWUsIGRlc2MobikpICU+JSANCiAgYWRvcm5fdG90YWxzKCkgJT4lIA0KICBndCgpICU+JSANCiAgY29sc19sYWJlbCgNCiAgICBnZW5vbWUgPSAiR2Vub21lIiwNCiAgICB2aXJhbF9mYW1pbHkgPSAiRmFtaWx5IikNCiANCg0KdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICBkaXN0aW5jdCh2aXJ1c19uYW1lLCB2aXJhbF9mYW1pbHksIC5rZWVwX2FsbCA9IFRSVUUpICU+JSANCiAgZ3JvdXBfYnkoZ2Vub21lLCB2aXJhbF9mYW1pbHkpICU+JSANCiAgc3VtbWFyaXNlKG4gPSBuKCkpICU+JSANCiAgYXJyYW5nZShnZW5vbWUsIGRlc2MobikpICU+JSANCiAgYWRvcm5fdG90YWxzKCkgJT4lIA0KICBndCgpICU+JSANCiAgY29sc19sYWJlbCgNCiAgICBnZW5vbWUgPSAiR2Vub21lIiwNCiAgICB2aXJhbF9mYW1pbHkgPSAiRmFtaWx5IikNCmBgYA0KDQojIE5vdmVsIFZpcnVzZXMNCg0KYGBge3IsIG5vdmVsLXZpcnVzZXMsIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFfQ0KdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICBkaXN0aW5jdCh2aXJ1c19uYW1lLCB2aXJhbF9mYW1pbHksIC5rZWVwX2FsbCA9IFRSVUUpICU+JSANCiAgZmlsdGVyKHN0cl9kZXRlY3QodmlydXNfbmFtZSwgIk1hbml0b2JhICIpKSAlPiUgDQogIGZpbHRlcighc3RyX2RldGVjdCh2aXJ1c19uYW1lLCAiTWFuaXRvYmEgdmlydXMiKSkgJT4lIA0KICBncm91cF9ieShnZW5vbWUsIHZpcmFsX2ZhbWlseSkgJT4lIA0KICBzdW1tYXJpc2UobiA9IG4oKSkgJT4lIA0KICBndCgpDQoNCnZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgZGlzdGluY3QodmlydXNfbmFtZSwgdmlyYWxfZmFtaWx5LCAua2VlcF9hbGwgPSBUUlVFKSAlPiUgDQogIGZpbHRlcihzdHJfZGV0ZWN0KHZpcnVzX25hbWUsICJNYW5pdG9iYSAiKSkgJT4lIA0KICBmaWx0ZXIoIXN0cl9kZXRlY3QodmlydXNfbmFtZSwgIk1hbml0b2JhIHZpcnVzIikpICU+JSANCiAgZ3JvdXBfYnkoZ2Vub21lLCB2aXJ1c19uYW1lKSAlPiUgDQogIHN1bW1hcmlzZShuID0gbigpKSAlPiUgDQogIGFkb3JuX3RvdGFscygpICU+JSANCiAgZ3QoKQ0KDQpgYGANCg0KIyBWaXJ1cyBQcm9maWxlcw0KDQo+IEJlbG93IGFyZSBzdW1tYXJpZXMgZm9yIGVhY2ggdmlydXMgZGV0ZWN0ZWQuIA0KDQpgYGB7ciwgdmlydXNfdGFibGV9DQp2aXJ1c19wcm9maWxlX3RhYmxlIDwtIGZ1bmN0aW9uKHZpcnVzKSB7DQoNCiB2aXJ1c190YWJsZSA8PC0gIHZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgZmlsdGVyKHZpcnVzX25hbWUgPT0gdmlydXMpICU+JSANCiAgI3NlbGVjdCgtImNvbnRpZ19zZXF1ZW5jZXMiKSAlPiUgDQogIHN1bW1hcmlzZSgNCiAgICBudW1fc3BlY2llcyA9IG5fZGlzdGluY3QobW9zcXVpdG9fc3BlY2llcyksDQogICAgbnVtX2NvbnRpZyA9IG4oKSwNCiAgICBsb25nZXN0X2NvbnRpZyA9IG1heChjb250aWdfbGVuZ3RoKSwNCiAgICBzaG9ydGVzdF9jb250aWcgPSBtaW4oY29udGlnX2xlbmd0aCksDQogICAgYXZnX250X2lkID0gbWVhbihncmVhdGVzdF9pZGVudGl0eV9wZXJjZW50KSwNCiAgICBtYXhfbnRfaWQgPSBtYXgoZ3JlYXRlc3RfaWRlbnRpdHlfcGVyY2VudCksDQogICAgbWluX250X2lkID0gbWluKGdyZWF0ZXN0X2lkZW50aXR5X3BlcmNlbnQpDQogICAgDQogICkgJT4lIA0KICBndCgpICU+JSANCiAgY29sc19sYWJlbCgNCiAgICBsb25nZXN0X2NvbnRpZyA9ICJNYXggQ29udGlnIiwNCiAgICBzaG9ydGVzdF9jb250aWcgPSAiTWluIENvbnRpZyIsDQogICAgYXZnX250X2lkID0gIkF2ZXJhZ2UgYWEgSWQiLA0KICAgIG1heF9udF9pZCA9ICJNYXggYWEgSWQiLA0KICAgIG1pbl9udF9pZCA9ICJNaW4gYWEgSWQiLA0KICAgIG51bV9jb250aWcgPSAibiBDb250aWdzIiwNCiAgICBudW1fc3BlY2llcyA9ICJuIFNwZWNpZXMiDQogICkgJT4lIA0KICB0YWJfaGVhZGVyKA0KICAgIHRpdGxlID0gcGFzdGUwKCJTdW1tYXJ5IFN0YXRzIGZvciIsICIgIiwgdmlydXMpDQogICkgJT4lIA0KICAgIGZtdF9udW1iZXIoDQogICAgICBjb2x1bW5zID0gNDpsYXN0X2NvbCgpLA0KICAgICAgZGVjaW1hbHMgPSAyDQogICAgKQ0KDQp9DQogIA0KYGBgDQoNCg0KDQpgYGB7ciwgdmlydXNfcHJvZmlsZXMsIHJlc3VsdHMgPSAnYXNpcyd9DQojIEFycmFuZ2UgZGYgZm9yIHZpcnVzIHJlcG9ydGluZw0KdmlydXNfbWFzdGVyXzIwMjMgPDwtIHZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgbXV0YXRlKGFjcm9zcyguY29scyA9ICJ2aXJ1c19uYW1lIiwNCiAgICAgICAgICAgICAgICB+Y2FzZV93aGVuKGdyZXBsKCJNYW5pdG9iYSIsIHZpcnVzX25hbWUpICYgIWdyZXBsKCJNYW5pdG9iYSB2aXJ1cyIsIHZpcnVzX25hbWUpIH4gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3RlMCguLCAiKiIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IC4pKSkgJT4lIA0KICBhcnJhbmdlKGRlc2MoZ2Vub21lKSkgJT4lIA0KICBkcm9wX25hKHZpcnVzX25hbWUpDQoNCmZvcih2aXJ1cyBpbiB1bmlxdWUodmlydXNfbWFzdGVyXzIwMjMkdmlydXNfbmFtZSkpIHsNCg0KICBnZW5vbWUgPC0gdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICAgIGFycmFuZ2UoZGVzYyhnZW5vbWUpKSAlPiUgDQogICAgZHJvcF9uYSh2aXJ1c19uYW1lKSAlPiUgIA0KICAgIGZpbHRlcih2aXJ1c19uYW1lID09IHZpcnVzKSAlPiUgDQogICAgcHVsbChnZW5vbWUpICU+JSANCiAgICBoZWFkKDEpDQogIA0KICBnZW5vbWUgPC0gcGFzdGUwKGdlbm9tZSkNCiAgDQogIGZhbWlseSA8LSB2aXJ1c19tYXN0ZXJfMjAyMyAlPiUgDQogICAgZmlsdGVyKHZpcnVzX25hbWUgPT0gdmlydXMpICU+JSANCiAgICBwdWxsKHZpcmFsX2ZhbWlseSkgJT4lIA0KICAgIGhlYWQoMSkNCiAgDQogIGZhbWlseSA8LSBwYXN0ZTAoZmFtaWx5KQ0KDQogIHNhbXBsZV9kZXRlY3Rpb25zIDwtIHZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgICBmaWx0ZXIodmlydXNfbmFtZSA9PSB2aXJ1cykgJT4lIA0KICAgIGRpc3RpbmN0KHNhbXBsZV9udW1iZXIpDQogIHNhbXBsZV9kZXRlY3Rpb25zIDwtIHBhc3RlMChucm93KHNhbXBsZV9kZXRlY3Rpb25zKSkNCiAgDQogIA0KICBjYXQoJ1xuXG4jIycsIHZpcnVzLCAnXG5cbicpDQogIA0KICBjYXQoJ1xuXG4+JywgdmlydXMsICdoYXMgYSAnLCBnZW5vbWUsICdnZW5vbWUgYW5kIGlzIGEgbWVtYmVyIG9mIHRoZSBmYW1pbHknLCBmYW1pbHksICdhbmQgd2FzIGRldGVjdGVkIGluJywgc2FtcGxlX2RldGVjdGlvbnMsICdzYW1wbGUocykuJywgJ1NlZSBzdW1tYXJ5IGZpZ3VyZXMgYW5kIHRhYmxlcyBiZWxvdy4nLCAgJ1xuXG4nKQ0KICANCnByaW50KHN1cHByZXNzTWVzc2FnZXMoDQogIHZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgICBmaWx0ZXIodmlydXNfbmFtZSA9PSB2aXJ1cykgJT4lIA0KICAgIHNlbGVjdCgtImNvbnRpZ19zZXF1ZW5jZSIpICU+JSANCiAgICBncm91cF9ieShtb3NxdWl0b19zcGVjaWVzLCBjb2xsZWN0aW9uX3llYXIsIGxvY2F0aW9uX3Bvb2wpICU+JSANCiAgICBzdW1tYXJpc2UobiA9IG5fZGlzdGluY3Qoc2FtcGxlX251bWJlcikpICU+JSANCiAgICBnZ3Bsb3QoYWVzKHggPSBtb3NxdWl0b19zcGVjaWVzLCB5ID0gbiwgZmlsbCA9IGxvY2F0aW9uX3Bvb2wpKSArDQogICAgZ2VvbV9jb2woKSArDQogICAgZmFjZXRfZ3JpZCguIH4gY29sbGVjdGlvbl95ZWFyKSArDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoIkxvY2F0aW9uIiwgb3B0aW9uID0gIm1hZ21hIikgKw0KICAgIHRoZW1lX2J3KCkgKw0KICAgIGxhYnModGl0bGUgPSBwYXN0ZTAoIk51bWJlciBvZiBWaXJ1cyBEZXRlY3Rpb25zIiksDQogICAgICAgc3VidGl0bGUgPSBwYXN0ZTAoIkZvciAiLCB2aXJ1cywgIiBieSBZZWFyLCBTcGVjaWVzIGFuZCBMb2NhdGlvbiIpKSArDQogICAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTYsIGZhY2UgPSAiYm9sZCIpLA0KICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIHZqdXN0ID0gMC41KSkNCiAgKSkNCiAgDQogIGNhdCgnXG5cbiMjIycsICdZZWFycyB7LnVubGlzdGVkIC51bm51bWJlcmVkfScsICdcblxuJykNCg0KICBwcmludChodG1sdG9vbHM6OnRhZ0xpc3QoDQogICAgdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICAgICAgZmlsdGVyKHZpcnVzX25hbWUgPT0gdmlydXMpICU+JSANCiAgICAgIGdyb3VwX2J5KGNvbGxlY3Rpb25feWVhcikgJT4lIA0KICAgICAgc3VtbWFyaXNlKG4gPSBuX2Rpc3RpbmN0KHNhbXBsZV9udW1iZXIpKSAlPiUgDQogICAgICBndCgpICU+JSANCiAgICAgIGNvbHNfbGFiZWwoY29sbGVjdGlvbl95ZWFyID0gIlllYXIocykgRGV0ZWN0ZWQiKQ0KICAgICkpDQogIA0KICBjYXQoJ1xuXG4jIyMnLCAnTG9jYXRpb25zIHsudW5saXN0ZWQgLnVubnVtYmVyZWR9JywgJ1xuXG4nKQ0KICANCiAgICBwcmludChodG1sdG9vbHM6OnRhZ0xpc3QoDQogICAgdmlydXNfbWFzdGVyXzIwMjMgJT4lIA0KICAgICAgZmlsdGVyKHZpcnVzX25hbWUgPT0gdmlydXMpICU+JSANCiAgICAgIGdyb3VwX2J5KGxvY2F0aW9uX3Bvb2wpICU+JSANCiAgICAgIHN1bW1hcmlzZShuID0gbl9kaXN0aW5jdChzYW1wbGVfbnVtYmVyKSkgJT4lIA0KICAgICAgZ3QoKSAlPiUgDQogICAgICBjb2xzX2xhYmVsKGxvY2F0aW9uX3Bvb2wgPSAiTG9jYXRpb24ocykgRGV0ZWN0ZWQiKQ0KICAgICkpDQogICAgDQogICAgY2F0KCdcblxuIyMjJywgJ01vc3F1aXRvIFNwZWNpZXMgey51bmxpc3RlZCAudW5udW1iZXJlZH0nLCAnXG5cbicpDQogIA0KICAgIHByaW50KGh0bWx0b29sczo6dGFnTGlzdCgNCiAgICB2aXJ1c19tYXN0ZXJfMjAyMyAlPiUgDQogICAgICBmaWx0ZXIodmlydXNfbmFtZSA9PSB2aXJ1cykgJT4lIA0KICAgICAgZ3JvdXBfYnkobW9zcXVpdG9fc3BlY2llcykgJT4lIA0KICAgICAgc3VtbWFyaXNlKG4gPSBuX2Rpc3RpbmN0KHNhbXBsZV9udW1iZXIpKSAlPiUgDQogICAgICBndCgpICU+JSANCiAgICAgIGNvbHNfbGFiZWwobW9zcXVpdG9fc3BlY2llcyA9ICJNb3NxdWl0byBIb3N0cyIpDQogICAgKSkNCiAgICANCiAgICBjYXQoJ1xuXG4jIyMnLCAnQ29udGlnIFN1bW1hcnkgey51bmxpc3RlZCAudW5udW1iZXJlZH0nLCAnXG5cbicpDQoNCiAgdmlydXNfcHJvZmlsZV90YWJsZSh2aXJ1cykNCiAgDQogIHByaW50KGh0bWx0b29sczo6dGFnTGlzdCh2aXJ1c190YWJsZSkpDQogIA0KICBjYXQoJ1xuXG4jIyMnLCAnYWEgSWRlbnRpdHkgU3VtbWFyeSB7LnVubGlzdGVkIC51bm51bWJlcmVkfScsICdcblxuJykNCiAgDQogIHByaW50KHN1cHByZXNzTWVzc2FnZXMoDQogIHZpcnVzX21hc3Rlcl8yMDIzICU+JSANCiAgICBmaWx0ZXIodmlydXNfbmFtZSA9PSB2aXJ1cykgJT4lIA0KICAgIHNlbGVjdCgtImNvbnRpZ19zZXF1ZW5jZSIpICU+JSANCiAgICBnZ3Bsb3QoYWVzKHggPSBncmVhdGVzdF9pZGVudGl0eV9wZXJjZW50KSkgKw0KICAgIGdlb21faGlzdG9ncmFtKGFlcyhmaWxsID0gZ3JlYXRlc3RfaWRlbnRpdHlfcGVyY2VudCA8IDg1KSkgKw0KICAgIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IDg1LCBsaW5ldHlwZSA9ICJkb3R0ZWQiLCBjb2xvdXIgPSAiZmlyZWJyaWNrIikgKw0KICAgIHRoZW1lX2J3KCkgKw0KICAgIGxhYnModGl0bGUgPSBwYXN0ZTAoImFhIElkZW50aXR5IiksDQogICAgICAgc3VidGl0bGUgPSBwYXN0ZTAoIkZvciAiLCB2aXJ1cyksDQogICAgICAgeCA9ICJhYSBJZGVudGl0eSIsIA0KICAgICAgIHkgPSAiTnVtYmVyIG9mIENvbnRpZ3MiKSArDQogICAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTYsIGZhY2UgPSAiYm9sZCIpLA0KICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIHZqdXN0ID0gMC41KSkgKw0KICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikNCiAgKSkNCiAgDQp9DQoNCg0KYGBg